-
코드:https://github.com/Yoo-mingi/blog_Boilerplate/tree/main/backend/notification
Notification 서비스(도메인)을 생성할 것이다.
주로 이메일 인증이나, 만약 나중에 추가된다면 안내나 SMS 등도 들어갈 수 있는, 말 그대로 사용자에게 전달하는 모든것이 들어갈 수 있는 도메인이다.
본 포스팅에서는 회원가입시 이메일 인증을 위한 서비스로만 사용하겠다.

의존성은 다음과 같다.
메일 인증인 이상 회원가입(user-service)가 보낸 요청을 응답해야 함으로 web이 있어야하며,
메일 서비스 연동을 위한 mail 의존성과 메일 템플릿 제작을 위한 thymleaf 의존성도 추가했다.
그리고 메일 인증에 보통 시간제한이 있는데, 그 구현과 인증코드 자체가 맞는지 보기 위해서는 DB가 필요하기에 postgresql 드라이버와 jpa가 필요하다.
application.yaml 은 마찬가지로 개인설정을 진행하면 된다.
다 동일하지만 이 부분만큼은 각 개인에 맞는 설정이 필요하다.

이메일 설정인데, 개인 메일서버가 있다면 상관없지만 대부분의 사람이 없을 것이므로, gmail을 사용할 것이다.
베스핀 글로벌에서 잘 설명한 글이 있기에 링크 첨부하겠다. https://support.bespinglobal.com/ko/support/solutions/articles/73000545275--gmail-%EC%95%B1-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%EC%83%9D%EC%84%B1%EB%B0%A9%EB%B2%95
나는 daramu 라는 이름으로 생성하며 패스워드 16자리를 받아서, 저기 위에 있는 username에는 이메일주소를, passowrd에는 받은 16자리를 입력했다.
그 외 핵심 로직은 다음과 같다.
POST /verify-request
requestbody로 VerifyrequestDTO 를 요구하지만, 해당 DTO는 email만 하나 있을 뿐이다.
이메일을 받아 발송하는 컨트롤러로, 서비스 내부 로직은 다음과 같다.

다음으로 살펴볼 건 POST /verify-confirm 이다.
발송한 회원가입의 코드에 대한 검증이며, 당연하겠지만 이메일, 코드, 유효기간 까지 고려한 코드가 있따.
매게변수로 이메일과 코드, 두개를 받는다.

이 모든 과정이 끝났다면 user-service가 POST /api/users/register 를 호출하여 user 스키마와 keycloak 에 데이터를 저장하는 것으로 회원가입 절차가 종료된다.
물론 주기적으로 인증코드 삭제 로직도 있다. 애초에 회원가입 이후에는 사용 안하니, 계속 유지할 이유가 없다.

여기서 메일 보내는 템플릿이 있는데, 이건 AI가 다 짜줬다. 스타일링은 젬병이라......
위치는 resources/templates/email/ 에있다.


코드로는 service 안에 저렇게 위치를 지정함으로 가져가서 쓸 수 있게 설정해 두었다.
'개발 > Spring boot' 카테고리의 다른 글
Spring Boot PROD 운영환경으로 올리기: Gateway 올리기 (0) 2026.06.07 Keycloak, React, Spring Boot 연동 : 연동 확인 (0) 2026.06.06 Keycloak, React, Spring Boot 연동: user 서비스 생성 (0) 2026.06.06 Keycloak, React, Spring Boot 연동: SCG(Spring Cloud Gateway) 생성하기 (1) 2026.06.06 Keycloak, React, Spring Boot 연동: DB 생성하기 (0) 2026.06.06 댓글
