테마
Story: 크레딧 만료 예정 알림
메타
| 항목 | 값 |
|---|---|
| Story ID | E-07-S-10 |
| Epic | E-07 쿠폰 & 추천인 코드 |
| 상태 | ready-for-dev |
| 우선순위 | P1 |
| 규모 | S |
| 담당 개발자 | BE, 운영 |
사용자 스토리
As a 크레딧 보유자,
I want 만료 예정 알림을 받고 싶다,
So that 크레딧을 잃지 않고 사용할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: D-30 알림
| 항목 | 내용 |
|---|---|
| Given | 크레딧 만료 30일 전에 |
| When | 배치가 실행되면 |
| Then | 만료 예정 알림톡이 발송된다 |
AC-02: D-7 알림
| 항목 | 내용 |
|---|---|
| Given | 크레딧 만료 7일 전에 |
| When | 아직 크레딧이 남아있으면 |
| Then | 두 번째 알림톡이 발송된다 |
AC-03: 추천 유도
| 항목 | 내용 |
|---|---|
| Given | 만료 알림톡에 |
| When | 하단 영역을 확인하면 |
| Then | "친구 추천하고 크레딧 더 받기" 링크가 포함된다 |
태스크 분해
Task 1: 만료 예정 배치
- [ ] 1.1: D-30 배치 (매일 09:00)
- 만료일 = 오늘 + 30일인 크레딧 조회
- 알림 대상자 추출
- [ ] 1.2: D-7 배치 (매일 09:00)
- 만료일 = 오늘 + 7일인 크레딧 조회
- D-30 알림 후 미사용자만 대상
Task 2: 알림톡 발송
- [ ] 2.1: 알림톡 템플릿 등록
- [ ] 2.2: 발송 로직 구현
- [ ] 2.3: 발송 이력 기록 (중복 발송 방지)
Task 3: 마이페이지 연동
- [ ] 3.1: 만료 예정 크레딧 강조 표시
- D-30 이내: 노란색 배경
- D-7 이내: 빨간색 배경
알림톡 템플릿
[장사왕] 크레딧 만료 예정 안내
안녕하세요, #{userName}님!
보유하신 크레딧이 곧 만료됩니다.
■ 만료 예정 크레딧
• 금액: #{expiringAmount}원
• 만료일: #{expiryDate}
만료 전 정기결제에 자동 사용되니 걱정 마세요!
추가 크레딧이 필요하시면 친구를 추천해보세요.
[친구 추천하고 크레딧 받기]개발 노트
발송 시점
| 시점 | 대상 | 비고 |
|---|---|---|
| D-30 | 만료 30일 전 크레딧 보유자 | 첫 번째 알림 |
| D-7 | D-30 알림 후 미사용자 | 두 번째 알림 |
중복 발송 방지
- CreditExpirationNotification 테이블
- userId, creditTransactionId, notificationType (D30/D7), sentAt
이벤트 로깅
| 이벤트 | 파라미터 |
|---|---|
credit_expiring_soon | user_id, amount, days_until_expiry |
credit_expiration_notification_sent | user_id, amount, notification_type |
credit_expired | user_id, amount |
생성일: 2026-01-20
