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 값에 대해서 자동으로 형태를 맞춰주는 게 있는데