Skip to main content

2026년 5월 변경 이력

2026-05-06 (수)

✅ 이메일 시스템 구현 기준 확정

계정 보안, 결제 신뢰성, 운영 커뮤니케이션을 위한 이메일 시스템 설계를 구현 기준으로 확정했습니다.

  • 이메일 모듈의 1차 우선순위를 회원가입 본인인증, 비밀번호 재설정/변경, 결제 성공 알림으로 정리
  • 발신 주소를 noreply@vivid.place로 고정하고, SES 리전은 기존 AWS 리전을 사용하도록 결정
  • local/dev는 EMAIL_DELIVERY_MODE=log, prod는 EMAIL_DELIVERY_MODE=ses로 분리
  • 신규 가입자는 isEmailVerified=false로 생성하고, 기존 가입자는 isEmailVerified=true로 백필하도록 정리
  • 미인증 계정은 로그인 자체를 차단하고, 프론트엔드가 EMAIL_NOT_VERIFIED 에러 코드로 재발송 CTA를 표시하도록 설계
  • 이메일 인증 토큰 TTL은 30분, 비밀번호 재설정 토큰 TTL은 15분으로 고정
  • Redis에는 토큰 원문이 아닌 token hash만 저장하고, 인증/재설정 토큰은 단회 사용하도록 정의
  • 메일 발송 파이프라인을 DB Outbox + SQS Standard Queue + EmailWorker + DLQ 구조로 확정
  • Dispatcher 주기는 prod 3초, local/dev 10초, batch size 10으로 정리
  • SQS 발행 실패, 인증/비밀번호 메일 실패, 결제 알림 메일 실패의 재시도 정책을 타입별로 분리
  • 결제 성공 메일은 PaymentsService.verifyAndProcessPayment() 성공 이후 outbox에 기록하도록 설계

문서 반영

  • backend/EMAIL_SYSTEM.md