테마
Story: 자동 쿠폰 발급 (첫결제 100원)
메타
| 항목 | 값 |
|---|---|
| Story ID | E-07-S-08 |
| Epic | E-07 쿠폰 & 추천인 코드 |
| 상태 | ready-for-dev |
| 우선순위 | P1 |
| 규모 | S |
| 담당 개발자 | BE |
사용자 스토리
As a Trial 유저 (몰연동 완료),
I want 첫결제 100원 쿠폰을 자동으로 받고 싶다,
So that 결제 부담 없이 서비스를 시작할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 쿠폰 자동 발급
| 항목 | 내용 |
|---|---|
| Given | Trial 유저가 몰연동을 완료했을 때 |
| When | 연동 완료 이벤트가 발생하면 |
| Then | 첫결제 100원 쿠폰(FIRST100)이 자동 발급된다 |
AC-02: 발급 조건 검증
| 항목 | 내용 |
|---|---|
| Given | 쿠폰 발급 시 |
| When | 이미 첫결제 쿠폰이 있거나 결제 이력이 있으면 |
| Then | 쿠폰이 발급되지 않는다 |
AC-03: 쿠폰 스펙
| 항목 | 내용 |
|---|---|
| Given | 발급된 FIRST100 쿠폰은 |
| When | 결제 페이지에서 적용하면 |
| Then | 109,900원 할인되어 100원만 결제된다 |
태스크 분해
Task 1: FIRST100 쿠폰 설정
- [ ] 1.1: 시스템 쿠폰 등록 (seed data)
code: FIRST100 type: FIXED discountAmount: 109900 maxUsageTotal: null (무제한) maxUsagePerUser: 1 isFirstPaymentOnly: true
Task 2: 자동 발급 로직
- [ ] 2.1: 몰연동 완료 이벤트 리스너
- [ ] 2.2: 발급 조건 검증
- 결제 이력 없음
- FIRST100 쿠폰 미보유
- [ ] 2.3: 쿠폰 발급 (CouponUsage 생성)
Task 3: 알림
- [ ] 3.1: 쿠폰 발급 인앱 알림
- "첫결제 100원 쿠폰이 도착했어요!"
- [ ] 3.2: Trial D-3 알림에 쿠폰 안내 포함
개발 노트
첫결제 100원 플로우
[Trial 시작]
↓
[Trial 기간 중 몰연동]
↓
[시스템: FIRST100 쿠폰 자동 발급]
↓
[Trial 만료 D-3 알림] ← "첫결제 100원 쿠폰 사용 가능!"
↓
[결제 페이지 진입]
↓
[쿠폰 자동 적용: 109,900원 할인]
↓
[100원 결제 + 빌링키 등록]
↓
[구독 시작 - 다음달부터 110,000원]쿠폰 스펙
| 항목 | 값 |
|---|---|
| 쿠폰 코드 | FIRST100 |
| 유형 | 정액 할인 (FIXED) |
| 할인 금액 | 109,900원 |
| 유저당 사용 | 1회 |
| 적용 조건 | 첫 결제 전용 |
| 자동 발급 조건 | Trial 유저 + 몰연동 완료 |
이벤트 로깅
| 이벤트 | 파라미터 |
|---|---|
first_payment_coupon_issued | user_id, coupon_code |
first_payment_coupon_used | user_id, payment_amount |
생성일: 2026-01-20
