Repository navigation
refactor: 메일 제목·본문 생성을 발송 수단과 분리한다 - #155
Conversation
SES와 sendmail 발송기가 같은 제목·텍스트·HTML 템플릿 채우기 코드를 각자 복사해 갖고 있었다. - MailMessages가 메일 내용(MailMessage)을 만들고, TemplateMailSender가 MailSender 메서드를 구현한다. - SES·sendmail 발송기는 deliver(받는 사람, 내용)만 구현한다. - 메일 문구는 글자 하나 바뀌지 않았다(두 발송기의 원래 문자열과 기계적으로 대조).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
요약
동작을 바꾸지 않는 리팩토링.
SesMailSender와SendmailMailSender가 같은 제목·텍스트 본문·HTML 템플릿 채우기 코드(메서드 2개, 템플릿 상수 2개)를 각자 복사해 갖고 있었고, 다른 것은 실제 발송 부분뿐이었다. 문구를 고치려면 두 곳을 똑같이 고쳐야 했다.변경
MailMessage(subject, text, html)+MailMessages.passwordReset(...)/accountCreated(...)— 메일 내용을 한곳에서 만든다.TemplateMailSender(추상) —MailSender의 두 메서드를 구현하고deliver(받는 사람, MailMessage)만 하위 클래스에 맡긴다.SesMailSender·SendmailMailSender는deliver만 구현한다.LoggingMailSender(로그만 남김)는 그대로.동작 동일성
MailMessages의 리터럴 집합과도 정확히 같음을 기계적으로 대조했다.MailMessagesTest: 제목·텍스트 본문을 원래 문구로 고정하고, HTML 이스케이프(a<b&c→a<b&c)와 SES 요청(보내는 사람, 받는 사람, 제목, 본문) 구성을 확인한다.테스트
./gradlew test: 552건 중 551 통과, 1 스킵.Summary by CodeRabbit