Programming/Java

[Spring] Gmail SMTP를 이용하여 이메일 인증 구현 - 데이터의 흐름

mar1po5a 2025. 3. 21. 15:22

STS4

Legacy Project

JAVA 1.8

Oracle SQL

Tomcat9

Mybatis jdbc SqlSessionFactory 사용

** Gmail SMTP 설정을 모두 끝마쳤어야함.


 

1. 회원가입 페이지에서 이메일 인증 요청

사용자 액션: 회원가입 폼에서 이메일 입력 후 "인증 코드 발송" 버튼 클릭

데이터 흐름:

  • signUpForm.jsp의 Ajax 요청
  • MemberController의 requestEmailAuth()
  • EmailService의 authCodeSendEmail()
  • 랜덤 인증코드 생성(authCode())
  • 이메일 발송(sendEmail())
  • MemberService의 insertAuthCode()
  • memberMapper.xml의 insertAuthCode 태그
  • DB의 AUTHCODE 테이블에 저장

2. 사용자가 이메일에서 인증 코드 확인 후 입력

사용자 액션: 이메일 확인 후 회원가입 폼에 인증 코드 입력, "인증 확인" 버튼 클릭

데이터 흐름:

  • signUpForm.jsp의 Ajax 요청
  • MemberController의 checkAuthCode()
  • EmailService의 checkAuthCode()
  • MemberService의 getAuthCode()
  • memberMapper.xml의 getAuthCode 태그
  • DB에서 인증코드 조회 및 검증
  • 인증 결과 반환
  • 클라이언트에 성공/실패 응답

3. 인증 성공 후 회원가입 완료

사용자 액션: 나머지 회원정보 입력 후 "회원가입" 버튼 클릭

데이터 흐름:

  • signUpForm.jsp의 폼 제출
  • MemberController의 signUp()
  • 사용자 입력 데이터 검증
  • 인증코드 재확인(EmailService의 checkAuthCode())
  • MemberService의 signUpAndSendAuthCode()
  • MemberService의 signUp()
  • memberMapper.xml의 signUp 태그
  • DB에 회원정보 저장
  • 회원가입 완료 응답 반환