카테고리 없음

카테고리 없음Spring을 이용한 Email 인증 _ OTP 기능 구현_ 8. AWS

1son 2025. 8. 2. 15:24

17. SES 전송을 위한 Service 작성

 

이제 서비스 로직을 마무리 해볼 것 

 

 

constrants 파일에 template 한 줄 추가 

이 파일은 -> 개발자가 직접 만든 "상수 정의용 클래스" - 변하지 않는 값(상수) 들을 모아두는 곳

 

 

OTPService 파일로 이동해서 작업 할것 

 

 

 

이렇게 하면, 만약에 findByEmail 통해서 email 값 가져오는 경우 있음 

 User user = userRepository.findByEmail(email).orElseGet(() -> userRepository.save(
                    User.builder()
                    .email(email)
                    .is_valid(false)
                    .build())
            ));

 

email 값이 매칭이 되면 바로 가져오고 

매칭이 되지 않으면 orElseGet이 발생을 해 새로운 User를 만들어줌 

그 user를 반환하게 될 것임 

 

 

user가 valid 하지 않으면 OTP 전송할 것임 secret key로 

 

 

 

if(!user.getIs_valid()){
                //OTP 전송
                String link = OTP.generateQRCodeURL(email, SECRET);
            }

 

OTP 이미지에 대한 링크가 생성이 되었음 

 

Map.of 에 값을 하나씩 선언을 해주도록 하겠음 

 

 

18. SES Template JSON

이제 aws SES에 계정을 생성하고 그거에 대해 테스트를 진행할 작만 남음 

이런 SES를 사용을 할 때에는 기본적으로 템플릿을 생성을 해주셔야함 

 

CLI 환경에서 aws와 소통을 하고 그거에 대해서 명령어를 입력을 함으로써 

aws에 대한 템플릿을 업로드 해줘야함 

 

 

템플릿을 업로드 할 수 있는 템플릿.json 파일을 생성해보록 할 것 

Template 이라는 키 값을 가지고 있게 될 것 

템플릿 네임은 

 

OTPService.java 

- mailService.sendTemplateEmail(INVITE_QR_TEMPLATE, data, email);

 

Constrants.java

- public static final String INVITE_QR_TEMPLATE = "invite-opt-code";

 

어떤 템플릿을 사용할 거냐 라는 템플릿 네임이 있음 

이 값을 그대로 넣어주면 됨 

 

subjectPart 라고 메일 제목을 넣어주면 됨 

HtmlPart는 html 값 들어가면 됨 

 

근데 우리가 일반적으로 알고 있는 html 형태는 ..

HTml 값에 대해서 자동으로 형태를 맞춰주는 게 있는데