테마
Story: 중간 체크 (D+3) 로직 및 UI
메타
| 항목 | 값 |
|---|---|
| Story ID | E-10-S-08 |
| Epic | E-10 업무노트 |
| 상태 | draft |
| 우선순위 | P1-a (v2.0) |
| 규모 | M |
| 담당 개발자 | 하록 (BE), 수민 (FE) |
사용자 스토리
As a 조언을 적용하고 결과가 궁금한 셀러,
I want 7일 기다리지 않고 중간에 트렌드를 확인하고 싶다,
So that 기록 직후에도 가치를 느끼고 안심할 수 있다.
배경
왜 필요한가?
- 7일 효과 추적은 "기록 직후 보상"이 없음
- 셀러가 기록만 하고 7일을 기다려야 하는 것은 동기부여 부족
- D+3 중간 체크로 "좋은 흐름이에요!" 피드백 → 즉시 가치 제공
- **핵심 가치 "성장 확신"**의 핵심 메커니즘
비즈니스 임팩트
| 지표 | 예상 영향 |
|---|---|
| 효과 추적 활성화율 | +15% (중간 피드백 기대감) |
| 타임라인 재방문율 | +20% (D+3 시점 확인 욕구) |
| 셀러 만족도 | 증가 (즉시 피드백) |
수락 기준 (Acceptance Criteria)
AC-01: D+3 시점 midMetrics 자동 계산
| 항목 | 내용 |
|---|---|
| Given | 효과 추적 중인 노트가 D+3이 되면 |
| When | 배치 작업 또는 조회 시 |
| Then | 적용 후 3일간 평균 지표가 midMetrics에 저장된다 |
json
midMetrics: {
"measuredAt": "2026-01-24",
"roas": 310,
"profitPer100": 12,
"trend": "up"
}AC-02: 트렌드 판정 로직
| 항목 | 내용 |
|---|---|
| Given | midMetrics가 계산되면 |
| When | beforeMetrics와 비교할 때 |
| Then | 트렌드가 판정된다 |
트렌드 판정 기준:
- ROAS +5% 이상 → trend: "up"
- ROAS -5% ~ +5% → trend: "flat"
- ROAS -5% 이상 → trend: "down"AC-03: 중간 체크 UI 표시
| 항목 | 내용 |
|---|---|
| Given | 효과 추적 중(D+3 이상)인 노트를 조회할 때 |
| When | 타임라인에서 해당 노트를 볼 때 |
| Then | 트렌드 아이콘과 ROAS 변화율이 표시된다 |
UI 표시 예시:
┌─────────────────────────────────────────────────────┐
│ ⏳ 효과 추적 중 (D+3/7) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 🔼 좋은 흐름이에요! │ │
│ │ ROAS 280% → 310% (+10.7%) │ │
│ │ 4일 후 최종 결과를 알려드릴게요 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘AC-04: 트렌드별 메시지
| 트렌드 | 아이콘 | 메시지 |
|---|---|---|
| up | 🔼 | "좋은 흐름이에요!" |
| flat | ➡️ | "아직 지켜보는 중" |
| down | 🔽 | "조금 더 지켜볼게요" |
AC-05: D+3 이전 노트
| 항목 | 내용 |
|---|---|
| Given | 효과 추적 중이지만 D+3 미만인 노트 |
| When | 타임라인에서 볼 때 |
| Then | midMetrics 없이 "⏳ 효과 추적 중 (D+N/7)" 표시 |
태스크 분해
Task 1: BE - midMetrics 계산 로직 AC-01, AC-02
- [ ] 1.1: D+3 도달 노트 조회 쿼리 (스케줄러용)
- [ ] 1.2: 3일간 평균 지표 계산 (기존 7일 로직 재활용)
- [ ] 1.3: 트렌드 판정 알고리즘 (up/flat/down)
- [ ] 1.4: midMetrics JSON 업데이트
Task 2: BE - API 확장 AC-03
- [ ] 2.1: GET /api/work-notes에 midMetrics 포함
- [ ] 2.2: 트렌드 문구 반환 (또는 FE에서 처리)
Task 3: FE - 중간 체크 UI AC-03, AC-04
- [ ] 3.1: 타임라인 노트 카드에 중간 체크 영역 추가
- [ ] 3.2: 트렌드 아이콘 (🔼/➡️/🔽) 표시
- [ ] 3.3: ROAS 변화율 계산 및 표시
- [ ] 3.4: 남은 기간 표시 ("N일 후 최종 결과")
Task 4: FE - 조건부 렌더링 AC-05
- [ ] 4.1: D+3 이전: 기존 추적 중 UI
- [ ] 4.2: D+3 이후: 중간 체크 UI
- [ ] 4.3: D+7 이후: 최종 결과 UI (기존)
Dev Notes
아키텍처 패턴
| 항목 | 내용 |
|---|---|
| 사용할 패턴 | S-05 효과 추적 로직 확장 |
| 참고 구현 | EffectTrackingService, EffectTrackingJob |
| 피해야 할 것 | 별도 테이블 생성 (effectTracking JSON 내 확장) |
의존성
| 항목 | 상태 | 설명 |
|---|---|---|
| 선행 작업 | E-10-S-05 | 효과 추적 로직 완료 후 확장 |
| 후행 작업 | E-10-S-10 | 패턴 표시 UI에서 트렌드 활용 |
영향 받는 소스 트리
src/
├── services/
│ └── EffectTrackingService.ts # 수정: midMetrics 계산 추가
├── jobs/
│ └── EffectTrackingJob.ts # 수정: D+3 배치 추가
└── components/
└── WorkNoteCard/
└── MidCheckBadge.tsx # 🆕 신규 생성이벤트 로깅
| 이벤트명 | 트리거 | 파라미터 | GA4 여부 |
|---|---|---|---|
view_mid_check | 중간 체크 UI 노출 | {noteId, trend, roasChange} | ✅ |
테스트 시나리오
| # | 시나리오 | 예상 결과 |
|---|---|---|
| 1 | D+3에 ROAS +10% 상승 | 🔼 "좋은 흐름이에요!" 표시 |
| 2 | D+3에 ROAS -3% | ➡️ "아직 지켜보는 중" 표시 |
| 3 | D+3에 ROAS -8% 하락 | 🔽 "조금 더 지켜볼게요" 표시 |
| 4 | D+2인 노트 | 중간 체크 없이 기존 추적 중 UI |
| 5 | D+7 완료된 노트 | 최종 결과 UI (중간 체크 숨김) |
생성일: 2026-01-29
📋 Penny
