Skip to content

[Feat] 이메일 템플릿 추가#430

Merged
david-parkk merged 14 commits intodevelopfrom
feat/#429
Feb 13, 2026
Merged

[Feat] 이메일 템플릿 추가#430
david-parkk merged 14 commits intodevelopfrom
feat/#429

Conversation

@david-parkk
Copy link
Contributor

@david-parkk david-parkk commented Feb 13, 2026

#️⃣ 연관된 이슈

closes #429

📝작업 내용

  • 이메일 템플릿 추가

작업 상세 내용

상세 내용을 입력해주세요.

💬리뷰 요구사항

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요.

Summary by CodeRabbit

변경사항

  • 새로운 기능
    • 이메일 발송이 HTML 형식으로 업그레이드되어 더 나은 시각적 경험과 명확한 인증 코드 표시를 제공합니다.
    • 스타일이 적용된 이메일 템플릿으로 인증 메일의 가독성과 브랜드 일관성이 개선되었습니다.
  • 테스트
    • 이메일 템플릿 렌더링과 HTML 발송 흐름을 검증하는 테스트가 추가/갱신되었습니다.
  • 잡일
    • 이메일 템플릿 지원을 위한 빌드 설정이 추가되었습니다.

@coderabbitai
Copy link

coderabbitai bot commented Feb 13, 2026

Walkthrough

Thymeleaf 기반 HTML 이메일 템플릿이 도입되었습니다. 빌드스크립트에 Thymeleaf 의존성이 추가되고, MailSenderService는 MimeMessage/MimeMessageHelper로 HTML 전송으로 전환되며 MailService는 템플릿을 렌더링해 sendHtml로 발송합니다. 테스트와 리소스 템플릿도 추가/수정되었습니다.

Changes

Cohort / File(s) Summary
빌드 설정
build.gradle
org.springframework.boot:spring-boot-starter-thymeleaf 의존성 추가.
메일 전송 인프라
src/main/java/.../mail/application/MailSenderService.java
send(...) 대신 sendHtml(...)로 API 변경; SimpleMailMessage 제거, MimeMessage/MimeMessageHelper 사용하여 HTML 콘텐츠 전송 및 MessagingException 처리로 변경.
메일 서비스 로직
src/main/java/.../mail/application/MailService.java
SpringTemplateEngine 주입 및 템플릿 렌더링(createEmailContent) 추가, sendCodeToEmail이 템플릿으로 생성한 HTML을 sendHtml로 전송하도록 변경.
템플릿 리소스
src/main/resources/templates/email_template.html
Thymeleaf 기반 HTML 이메일 템플릿 추가(코드 삽입점 th:text="${code}" 포함).
테스트
src/test/java/.../mail/application/MailServiceTest.java
SpringTemplateEngine 모킹 추가, 템플릿 처리 결과를 사용해 sendHtml 호출 검증으로 테스트 로직 변경.

Sequence Diagram(s)

sequenceDiagram
    participant App as Application
    participant MS as MailService
    participant TE as SpringTemplateEngine
    participant MSS as MailSenderService
    participant JMS as JavaMailSender

    App->>MS: sendCodeToEmail(authCode)
    MS->>TE: process("email_template", context)
    TE-->>MS: htmlContent
    MS->>MSS: sendHtml(toEmail, subject, htmlContent)
    MSS->>JMS: send(mimeMessage)
    JMS-->>MSS: success
    MSS-->>MS: void
    MS-->>App: void
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 템플릿에 귀여운 코드를 숨겨두고,
바삭한 HTML 옷을 입혀서 전송해요 ✨
인증 숫자 반짝이며 도착하리,
냠냠 메일 한 봉지 전해드려요 📧🐇

🚥 Pre-merge checks | ✅ 3 | ❌ 3
❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Merge Conflict Detection ⚠️ Warning ⚠️ Unable to check for merge conflicts: Invalid branch name format
Description check ❓ Inconclusive 설명이 기본 구조는 따르지만 '작업 상세 내용'과 '리뷰 요구사항' 섹션이 미작성된 상태입니다. 작업 상세 내용과 리뷰 요구사항 섹션을 구체적으로 작성하여 변경사항에 대한 맥락을 제공하세요.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed 제목 '[Feat] 이메일 템플릿 추가'는 풀 리퀘스트의 주요 변경사항인 이메일 템플릿 추가를 명확하게 설명합니다.
Linked Issues check ✅ Passed 풀 리퀘스트의 모든 변경사항(Thymeleaf 의존성 추가, HTML 이메일 템플릿, 서비스 업데이트)이 이슈 #429의 이메일 템플릿 추가 요구사항을 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 이메일 템플릿 기능 구현과 관련된 범위 내의 변경사항이며 불필요한 수정은 없습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#429
⚔️ Resolve merge conflicts (beta)
  • Auto-commit resolved conflicts to branch feat/#429
  • Create stacked PR with resolved conflicts
  • Post resolved changes as copyable diffs in a comment

No actionable comments were generated in the recent review. 🎉


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Feb 13, 2026

Test Results

 36 files   36 suites   12s ⏱️
168 tests 168 ✅ 0 💤 0 ❌
169 runs  169 ✅ 0 💤 0 ❌

Results for commit 481bc82.

♻️ This comment has been updated with latest results.

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@david-parkk david-parkk merged commit f384f8d into develop Feb 13, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

이메일 템플릿 추가

1 participant