Skip to content

Epic Spec: E-10 업무노트 (Work Note)

메타

항목
Epic IDE-10
SprintS52
상태approved
PO 승인일2026-01-23
담당하록 (BE), 수민 (FE)

1. WHY: 왜 이 기능이 필요한가?

문제 정의

쿠팡은 광고 API를 일절 제공하지 않는다. 장사왕은 쿠팡 광고센터 화면을 스크랩하여 ETL하는 방식으로 데이터를 수집한다. 이 방식으로는 광고 성과 데이터는 수집할 수 있지만, 셀러가 설정을 언제, 어떻게 변경했는지는 알 수 없다.

[현재 상황]
Surface Layer: "입찰가 낮추세요" 조언 제공

셀러: (쿠팡 광고센터에서 입찰가 조정)

우리: ??? (셀러가 뭘 했는지 모름)

       스크랩으로는 "결과"만 보임, "변경 행위" 자체는 수집 불가

결과: 조언이 효과 있었는지 검증 불가

핵심 페인포인트

[장사왕 측면]
1. Surface Layer 핵심 가설 "판단 → 행동 변화" 검증 불가
2. 조언의 효과를 측정할 수 없음
3. 서비스 개선을 위한 피드백 루프 부재
4. 스크랩 데이터만으로는 "셀러 행동"을 추론할 수 없음

[셀러 측면]
1. "저번에 뭐 바꿨더라?" 기억 휘발
2. 광고 운영 히스토리 관리 안 됨
3. 팀 운영 시 인수인계 어려움

근거 데이터

지표수치출처비고
쿠팡 광고 API없음-스크랩 ETL로 대체
스크랩 수집 가능 데이터성과 데이터만내부 ETL설정 변경 이력 수집 불가
"뭘 바꿨더라?" VOC다수채널톡셀러 페인포인트
Surface Layer 조언 클릭률TBDGA4 (S51/52)측정 중
조언 후 실제 행동률0%측정 불가핵심 문제

업무노트가 해결하는 것

[업무노트 도입 후]
Surface Layer: "입찰가 낮추세요" 조언 제공

셀러: [적용했어요 ✓] 버튼 클릭 (또는 직접 메모)

업무노트: "2026-01-21 캠페인A 입찰가 200→150 변경" 기록

1주일 후: "적용 전 ROAS 280% → 적용 후 ROAS 420% (+50%)" 효과 표시

셀러: "오, 효과 있네!" / 우리: "조언이 효과 있었구나" 검증 완료

기대 효과

  1. 검증 인프라 확보: Surface Layer 조언의 실제 효과 측정 가능
  2. 셀러 가치: 광고 운영 히스토리 관리, 인수인계 용이
  3. 서비스 개선: 어떤 조언이 효과적인지 데이터 기반 개선
  4. 차별화: 경쟁사에 없는 "광고 분석 + 업무 관리" 번들 가치

핵심 가치: 성장 확신 (v2.0 추가)

"기록 도구"가 아니라 "성장 파트너"

┌─────────────────────────────────────────────────────────────────┐
│                      성장의 정의                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│         B. 실력 향상        C. 자신감                           │
│         (원인 이해)         (확신)                              │
│              │                 │                                │
│              └────────┬────────┘                                │
│                       │                                         │
│                       ▼                                         │
│                  A. 지표 개선                                   │
│                  (결과)                                         │
│                                                                 │
│  "왜 이렇게 됐는지 알고, 다음에도 할 수 있다는 확신,            │
│   그리고 실제로 숫자가 따라오는 것" = 성장                       │
└─────────────────────────────────────────────────────────────────┘

패턴 발견이 핵심:

  • 한 번의 성공 → "운인가?"
  • 두 번의 성공 → "우연인가?"
  • 세 번의 성공 → "나에게 맞는 방법이구나"

반복이 확신을 만들고, 확신이 성장을 만든다.

S53 E-04 AI 진단과 연결:

  • 업무노트 = 패턴 수집 인프라
  • S53 E-04 = 패턴 활용한 개인화 진단

2. WHAT: 상세 요구사항

핵심 기능

#기능설명필수 여부
1업무노트 CRUD캠페인/키워드별 메모 작성/수정/삭제필수
2Surface Layer 연동"적용했어요" 버튼으로 조언 실행 기록필수
3타임라인 뷰날짜별 업무 기록 확인필수
4효과 추적적용 전/후 지표 비교 (ROAS, 순이익 등)필수 (L3)
5캠페인/키워드 태깅노트와 광고 대상 연결필수
6중간 체크 (D+3)효과 추적 중 트렌드 미리보기 (v2.0)P1-a
7패턴 발견3회 이상 동일 결과 → 패턴으로 인식 (v2.0)P1-a
8패턴 표시발견된 패턴을 타임라인/카드에 표시 (v2.0)P1-a

비즈니스 로직

로직 1: 업무노트 데이터 구조

[업무노트 (WorkNote) 스키마]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{
  id: string (UUID),
  userId: string (FK → User),
  createdAt: datetime,
  updatedAt: datetime,

  // 연결 대상
  targetType: enum ('campaign' | 'keyword' | 'general'),
  targetId: string | null,  // campaignId 또는 keywordId
  targetName: string,       // 캠페인명 또는 키워드명 (스냅샷)

  // 노트 내용
  noteType: enum ('manual' | 'advice_applied'),
  content: string,          // 직접 작성 메모

  // Surface Layer 연동 (advice_applied인 경우)
  adviceId: string | null,  // 어떤 조언이었는지
  adviceType: string | null, // 'roas_adjust' | 'bidding_down' | ...
  beforeValue: string | null, // "입찰가 200원" | "목표 ROAS 300%"
  afterValue: string | null,  // "입찰가 150원" | "목표 ROAS 400%"

  // 효과 추적
  effectTracking: {
    enabled: boolean,
    trackingStartDate: date,
    trackingEndDate: date,    // 기본 7일 후
    beforeMetrics: {          // 적용 전 7일 평균
      roas: number,
      profitPer100: number,
      adCost: number,
      conversionAmount: number
    },
    midMetrics: {             // D+3 중간 체크 (v2.0)
      measuredAt: date,
      roas: number,
      profitPer100: number,
      trend: 'up' | 'flat' | 'down'  // 트렌드 판정
    },
    afterMetrics: {           // 적용 후 7일 평균 (추적 종료 후)
      roas: number,
      profitPer100: number,
      adCost: number,
      conversionAmount: number
    },
    effectSummary: string | null,  // "ROAS +50% 개선" (자동 생성)
    effectResult: 'positive' | 'neutral' | 'negative' | null  // 효과 판정 (v2.0)
  }
}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 1-1: adviceType 표준 정의 (v2.0 추가)

E-03 Surface Layer 조언 케이스와 매핑되는 표준 adviceType 정의

[adviceType 표준]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

패턴 분류 및 S53 E-04 연계를 위한 표준 adviceType enum 정의

[검색 광고 관련]
| adviceType | 설명 | E-03 케이스 |
|------------|------|-------------|
| search_roas_up | 목표 ROAS 상향 (자동광고) | S-03-a |
| search_bid_down | 검색 키워드 입찰가 하향 (수동광고) | S-03-b |
| keyword_exclude | 키워드 제외 | S-01, S-02 연계 |
| keyword_optimize | 키워드 최적화 | S-01, S-02 연계 |

[비검색 광고 관련]
| adviceType | 설명 | E-03 케이스 |
|------------|------|-------------|
| non_search_bid_down | 비검색 입찰가 하향 | N-04-a |
| non_search_improve | 비검색 효율 개선 | N-04-b |

[리타게팅 광고 관련]
| adviceType | 설명 | E-03 케이스 |
|------------|------|-------------|
| retargeting_check | 리타게팅 점검 | R-01, R-02 |

[공통]
| adviceType | 설명 | E-03 케이스 |
|------------|------|-------------|
| budget_adjust | 예산 조정 | - |
| campaign_pause | 캠페인 일시중지 | - |
| general_optimize | 일반 최적화 | - |

[표준 적용 규칙]
1. "적용했어요" 클릭 시 해당 조언의 adviceType을 업무노트에 저장
2. 패턴 발견 시 adviceType 단위로 집계
3. S53 E-04 SellerAIContext로 전달 시 adviceType 배열로 전달

[예시]
- Surface Layer: "비검색 입찰가를 낮추세요" (N-04-a)
- 셀러: [적용했어요] 클릭
- 업무노트: adviceType = 'non_search_bid_down' 저장
- 패턴 발견: 'non_search_bid_down' 3회 적용, 80% positive
- S53 E-04: preferredActions = ['non_search_bid_down']

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 2: "적용했어요" 버튼 플로우

[Surface Layer 조언 → 적용 기록]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Surface Layer에서 조언 카드 표시
   ┌─────────────────────────────────────────────────────────────┐
   │ 💡 비검색 광고비가 높아요                                    │
   │                                                             │
   │ 현재 비검색 입찰가: 200원                                   │
   │ 권장 비검색 입찰가: 100~120원                               │
   │                                                             │
   │ [쿠팡 광고센터에서 조정하기 →]                              │
   │                                                             │
   │ ─────────────────────────────────────────────────────────── │
   │ [✓ 적용했어요]  [나중에]  [이 조언 숨기기]                  │
   └─────────────────────────────────────────────────────────────┘

2. [✓ 적용했어요] 클릭 시 입력 모달
   ┌─────────────────────────────────────────────────────────────┐
   │ 📝 적용 내용 기록                                            │
   │                                                             │
   │ 캠페인: 봄 신상품                                           │
   │ 조언: 비검색 입찰가 낮추기                                  │
   │                                                             │
   │ 어떻게 변경하셨나요?                                        │
   │                                                             │
   │ 변경 전: [200원        ]                                    │
   │ 변경 후: [120원        ]                                    │
   │                                                             │
   │ 메모 (선택):                                                │
   │ ┌─────────────────────────────────────────────────────────┐ │
   │ │ 일단 120원으로 낮춰봄. 효과 보고 100원까지 내릴 예정    │ │
   │ └─────────────────────────────────────────────────────────┘ │
   │                                                             │
   │ ☑ 7일 후 효과 확인 알림 받기                                │
   │                                                             │
   │                              [취소]  [기록하기]             │
   └─────────────────────────────────────────────────────────────┘

3. 기록 완료 후
   - 업무노트에 저장 (noteType: 'advice_applied')
   - 효과 추적 시작 (beforeMetrics 스냅샷)
   - 타임라인에 표시
   - 7일 후 효과 확인 알림 (선택 시)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 3: 직접 메모 작성

[수동 메모 작성]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Surface Layer 조언과 무관하게 셀러가 직접 기록하고 싶을 때

입력 경로:
1. 타임라인 뷰 > [+ 메모 추가] 버튼
2. 캠페인 카드 > [메모 추가] 버튼

┌─────────────────────────────────────────────────────────────────┐
│ 📝 업무 메모 작성                                                │
│                                                                 │
│ 연결 대상:                                                      │
│ ○ 전체 (일반 메모)                                              │
│ ● 캠페인 선택  [봄 신상품           ▼]                          │
│ ○ 키워드 선택  [선택하기...        ▼]                           │
│                                                                 │
│ 메모 내용:                                                      │
│ ┌───────────────────────────────────────────────────────────┐   │
│ │ 경쟁사 A가 같은 키워드로 입찰가 올림.                      │   │
│ │ 당분간 이 키워드 입찰가 유지하고 다른 키워드 테스트 예정  │   │
│ └───────────────────────────────────────────────────────────┘   │
│                                                                 │
│ 효과 추적:                                                      │
│ ☑ 7일 후 효과 확인 (선택 시 전/후 지표 비교)                   │
│                                                                 │
│                                [취소]  [저장]                   │
└─────────────────────────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 4: 타임라인 뷰

[타임라인 뷰 - 날짜별 업무 기록]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌─────────────────────────────────────────────────────────────────┐
│ 📋 업무노트                                    [+ 메모 추가]    │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│ [전체] [캠페인별 ▼] [효과 추적 중]                              │
│                                                                 │
│ ─────────────────────────────────────────────────────────────── │
│                                                                 │
│ 📅 2026-01-21 (오늘)                                            │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🏷 봄 신상품 캠페인                              10:30 AM   │ │
│ │                                                             │ │
│ │ ✓ 조언 적용: 비검색 입찰가 낮추기                          │ │
│ │   200원 → 120원                                             │ │
│ │                                                             │ │
│ │ 📝 "일단 120원으로 낮춰봄. 효과 보고 100원까지 내릴 예정" │ │
│ │                                                             │ │
│ │ ⏳ 효과 추적 중 (D+0, 7일 후 결과)                         │ │
│ │                                                   [수정]    │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                 │
│ ─────────────────────────────────────────────────────────────── │
│                                                                 │
│ 📅 2026-01-14 (1주일 전)                                        │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🏷 여름 쿨매트 캠페인                            2:15 PM    │ │
│ │                                                             │ │
│ │ ✓ 조언 적용: 목표 ROAS 조정                                │ │
│ │   300% → 400%                                               │ │
│ │                                                             │ │
│ │ ✨ 효과 확인됨:                                              │ │
│ │ ┌─────────────────────────────────────────────────────────┐ │ │
│ │ │         적용 전 (7일)    적용 후 (7일)    변화          │ │ │
│ │ │ ROAS      280%            385%           +37% ↑        │ │ │
│ │ │ 100원당   5원             18원           +13원 ↑       │ │ │
│ │ │ 광고비    ₩150,000       ₩120,000      -20% ↓        │ │ │
│ │ └─────────────────────────────────────────────────────────┘ │ │
│ │                                                             │ │
│ │ 💡 조언이 효과적이었어요! ROAS +37% 개선                   │ │
│ │                                                   [수정]    │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                 │
│ 📅 2026-01-10 (11일 전)                                         │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 📝 일반 메모                                     9:00 AM    │ │
│ │                                                             │ │
│ │ "이번 주 광고 예산 50만원 → 70만원 증액 예정               │ │
│ │  봄 시즌 대비"                                              │ │
│ │                                                   [수정]    │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 5: 효과 추적 계산

[효과 추적 로직]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. 적용 기록 시점
   - 적용 전 7일 평균 지표 스냅샷 (beforeMetrics)
   - 추적 시작일, 종료일(+7일) 설정

2. 추적 기간 중
   - 타임라인에 "⏳ 효과 추적 중 (D+N)" 표시
   - 아직 효과 판정 없음

3. 추적 종료 (7일 후)
   - 적용 후 7일 평균 지표 계산 (afterMetrics)
   - 효과 비교 자동 생성

[효과 판정 기준]
| 구분 | 조건 | 표시 |
|------|------|------|
| 효과 있음 | ROAS +10% 이상 OR 순이익 +10% 이상 | ✨ 조언이 효과적이었어요! |
| 변화 없음 | -10% ~ +10% | 📊 큰 변화 없어요 |
| 효과 없음 | ROAS -10% 이상 OR 순이익 -10% 이상 | 💡 다른 방법을 시도해보세요 |

[효과 요약 자동 생성]
"ROAS +37% 개선, 100원당 순이익 +13원"
"광고비 20% 절감하면서 효율 유지"
"아직 효과가 나타나지 않았어요. 조금 더 지켜보세요"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 6: 캠페인 카드 연동

[캠페인 카드에서 업무노트 접근]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌───────────────────────────────────────────────────────────────┐
│ 🟡 봄 신상품 캠페인                              ROAS 320%    │
│    광고비 ₩500,000 | 매출 ₩1,600,000 | 순이익 ₩50,000       │
│                                                               │
│    📝 최근 메모: "비검색 입찰가 120원으로 낮춤" (1일 전)      │
│                                                               │
│                                [메모 추가]  [펼쳐보기 ▼]     │
└───────────────────────────────────────────────────────────────┘

[펼친 상태]
┌───────────────────────────────────────────────────────────────┐
│ 🟡 봄 신상품 캠페인                              ROAS 320%    │
│ ...                                                           │
├───────────────────────────────────────────────────────────────┤
│                                                               │
│ 📋 이 캠페인 업무노트 (최근 3개)                              │
│                                                               │
│ • 01-21: 비검색 입찰가 200→120원 (⏳ 효과 추적 중)           │
│ • 01-14: 목표 ROAS 300→400% (✨ ROAS +37%)                   │
│ • 01-07: 키워드 5개 제외                                      │
│                                                               │
│                                           [전체 보기 →]       │
└───────────────────────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 7: 중간 체크 (D+3) - v2.0 추가

[중간 체크 로직]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

목적: 7일 기다리지 않고 D+3 시점에 트렌드 미리보기 제공
→ "기록 직후 보상" = 셀러에게 즉시 가치 제공

[트렌드 판정 기준]
| 구분 | 조건 | 표시 |
|------|------|------|
| 상승 추세 | ROAS +5% 이상 | 🔼 "좋은 흐름이에요!" |
| 유지 | -5% ~ +5% | ➡️ "아직 지켜보는 중" |
| 하락 추세 | -5% 이상 | 🔽 "조금 더 지켜볼게요" |

[UI 표시 예시]
┌─────────────────────────────────────────────────────────────────┐
│ 🏷 봄 신상품 캠페인                                              │
│                                                                 │
│ ✓ 조언 적용: 비검색 입찰가 낮추기                                │
│   200원 → 120원                                                 │
│                                                                 │
│ ⏳ 효과 추적 중 (D+3/7)                                         │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🔼 좋은 흐름이에요!                                          │ │
│ │ ROAS 280% → 310% (+10.7%)                                   │ │
│ │ 4일 후 최종 결과를 알려드릴게요                              │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

[데이터 구조 확장]
effectTracking: {
  ...기존 필드,
  midMetrics: {          // D+3 시점 지표
    measuredAt: date,
    roas: number,
    profitPer100: number,
    trend: 'up' | 'flat' | 'down'
  }
}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 8: 패턴 발견 - v2.0 추가

[패턴 발견 로직]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

패턴 정의: 동일 조언 유형에 대해 3회 이상 동일 결과가 나온 경우

[패턴 발견 조건]
- 동일 adviceType 3회 이상 적용
- 70% 이상 동일 결과 (positive 또는 negative)

[패턴 유형]
| 패턴 | 조건 | 의미 |
|------|------|------|
| **선호 방법** | 3회+ 적용, 70%+ positive | "이 방법 잘 맞아요!" |
| **비선호 방법** | 3회+ 적용, 70%+ negative | "이 방법은 피하세요" |
| **미확정** | 결과 혼재 | 패턴 미인식 |

[예시]
셀러가 "비검색 입찰가 낮추기" 조언을 5회 적용:
- 1회: positive (+15% ROAS)
- 2회: positive (+20% ROAS)
- 3회: neutral
- 4회: positive (+12% ROAS)
- 5회: positive (+18% ROAS)

→ positive 4회/5회 = 80%
→ **"비검색 입찰가 낮추기"가 선호 방법으로 등록**

[SellerPatterns 데이터 구조]
{
  userId: string,
  patterns: {
    preferredActions: [
      {
        adviceType: 'bidding_down',
        displayName: '비검색 입찰가 낮추기',
        trialCount: 5,
        positiveRate: 0.8,
        avgRoasChange: 16.3,
        lastApplied: date,
        discoveredAt: date
      }
    ],
    avoidedActions: [
      {
        adviceType: 'keyword_add',
        displayName: '키워드 추가',
        trialCount: 4,
        negativeRate: 0.75,
        avgRoasChange: -8.5,
        lastApplied: date,
        discoveredAt: date
      }
    ]
  },

  // S53 E-04 연계용 (SellerAIContext 호환)
  forAIContext: {
    applyRate: number,           // 조언 적용률
    positiveOutcomeRate: number, // 긍정 결과 비율
    preferredActions: string[],  // ['bidding_down', 'roas_up']
    avoidedActions: string[]     // ['keyword_add']
  }
}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

로직 9: 패턴 표시 - v2.0 추가

[패턴 표시 UI]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[타임라인 뷰 - 패턴 배지]
┌─────────────────────────────────────────────────────────────────┐
│ 📋 업무노트                                                      │
│                                                                 │
│ ──────────────────────────────────────────────────────────────  │
│                                                                 │
│ 💡 나에게 맞는 방법을 찾았어요!                                  │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ✅ 비검색 입찰가 낮추기 (5회 적용, 80% 성공)                  │ │
│ │ ✅ 목표 ROAS 올리기 (4회 적용, 75% 성공)                      │ │
│ │                                                              │ │
│ │ ⚠️ 키워드 추가 (4회 적용, 75% 실패)                          │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                 │
│ ──────────────────────────────────────────────────────────────  │
└─────────────────────────────────────────────────────────────────┘

[효과 추적 완료 카드 - 패턴 발견 알림]
┌─────────────────────────────────────────────────────────────────┐
│ 🏷 봄 신상품 캠페인                              2026-01-21     │
│                                                                 │
│ ✓ 조언 적용: 비검색 입찰가 낮추기                                │
│                                                                 │
│ ✨ 효과 확인됨: ROAS +18%                                        │
│                                                                 │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🎉 패턴 발견!                                                │ │
│ │ "비검색 입찰가 낮추기"가 5회 중 4회 효과 있었어요.            │ │
│ │ 이 방법이 당신에게 잘 맞아요!                                 │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

[캠페인 카드 - 패턴 힌트]
┌───────────────────────────────────────────────────────────────┐
│ 🟡 봄 신상품 캠페인                              ROAS 320%    │
│                                                               │
│ 💡 Surface Layer 조언: 비검색 입찰가 낮추기                    │
│                                                               │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ ✅ 이 방법 5회 적용, 80% 성공률 - 당신에게 맞는 방법!       │ │
│ └───────────────────────────────────────────────────────────┘ │
│                                                               │
│ [✓ 적용했어요]  [나중에]                                       │
└───────────────────────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

User Story (상세)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-01: Surface Layer 조언 적용 기록하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a Surface Layer 조언을 받은 셀러
I want to 조언대로 실행한 내용을 기록하고 싶다
So that 나중에 무엇을 바꿨는지 확인하고 효과를 추적할 수 있다

[수락 기준]
Given Surface Layer 조언 카드가 표시된 상태에서
When [✓ 적용했어요] 버튼을 클릭하면
Then 변경 전/후 값과 메모를 입력할 수 있는 모달이 표시된다
And 저장하면 업무노트에 기록되고 효과 추적이 시작된다
And 타임라인에 해당 기록이 표시된다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-02: 타임라인에서 업무 히스토리 확인하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 광고를 운영하는 셀러
I want to 날짜별로 무엇을 변경했는지 히스토리를 보고 싶다
So that "저번에 뭐 바꿨더라?" 기억을 되살릴 수 있다

[수락 기준]
Given 업무노트 메뉴에 진입하면
When 타임라인 뷰가 표시될 때
Then 날짜별로 작성한 메모가 최신순으로 표시된다
And 조언 적용 기록은 변경 전/후 값이 함께 표시된다
And 캠페인별 필터로 특정 캠페인 기록만 볼 수 있다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-03: 조언 적용 후 효과 확인하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 조언을 적용한 셀러
I want to 적용 전/후 지표 변화를 비교해서 보고 싶다
So that 내가 한 조정이 효과 있었는지 알 수 있다

[수락 기준]
Given 효과 추적이 완료된 기록(7일 경과)이 있을 때
When 해당 기록을 타임라인에서 볼 때
Then 적용 전/후 ROAS, 순이익, 광고비 비교 테이블이 표시된다
And 효과 판정 요약 ("✨ 조언이 효과적이었어요!")이 표시된다
And 변화율(%)이 표시된다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-04: 직접 메모 작성하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 조언 외에도 기록하고 싶은 게 있는 셀러
I want to 직접 메모를 작성하고 캠페인/키워드에 연결하고 싶다
So that 광고 운영 관련 모든 내용을 한 곳에서 관리할 수 있다

[수락 기준]
Given 타임라인 뷰 또는 캠페인 카드에서
When [+ 메모 추가] 버튼을 클릭하면
Then 메모 내용과 연결 대상(캠페인/키워드/일반)을 입력할 수 있다
And 저장하면 타임라인에 표시된다
And 효과 추적 여부를 선택할 수 있다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-05: 캠페인 카드에서 관련 메모 확인하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 특정 캠페인을 분석하는 셀러
I want to 해당 캠페인 관련 메모를 바로 보고 싶다
So that 이 캠페인에 무슨 조정을 했는지 맥락을 파악할 수 있다

[수락 기준]
Given 캠페인 카드가 표시된 상태에서
When 메모가 있는 캠페인인 경우
Then 최근 메모 1개가 카드에 미리보기로 표시된다
And 카드를 펼치면 최근 3개 메모 목록이 표시된다
And [전체 보기] 클릭 시 해당 캠페인 필터된 타임라인으로 이동한다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-06: 효과 확인 알림 받기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 조언을 적용하고 효과를 기다리는 셀러
I want to 7일 후 효과를 확인하라는 알림을 받고 싶다
So that 까먹지 않고 결과를 확인할 수 있다

[수락 기준]
Given 효과 추적 알림을 선택한 경우
When 7일이 경과하면
Then 인앱 알림 또는 푸시 알림이 발송된다
And 알림 클릭 시 해당 업무노트로 이동한다
And 효과 비교 결과가 표시된다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-07: 중간 체크로 트렌드 미리보기 (v2.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 조언을 적용하고 결과가 궁금한 셀러
I want to 7일 기다리지 않고 중간에 트렌드를 확인하고 싶다
So that 기록 직후에도 가치를 느끼고 안심할 수 있다

[수락 기준]
Given 효과 추적 중인 노트가 D+3이 되면
When 타임라인에서 해당 노트를 볼 때
Then "🔼 좋은 흐름이에요!" 또는 "➡️ 아직 지켜보는 중" 등 트렌드가 표시된다
And ROAS 변화율이 함께 표시된다
And 최종 결과까지 남은 기간이 표시된다

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
US-08: 나에게 맞는 방법 패턴 확인하기 (v2.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

As a 여러 조언을 적용해본 셀러
I want to 어떤 방법이 나에게 잘 맞는지 패턴을 확인하고 싶다
So that 실력이 늘었다는 확신을 얻고 다음 결정에 참고할 수 있다

[수락 기준]
Given 동일 조언 유형을 3회 이상 적용하고 70% 이상 동일 결과가 나온 경우
When 패턴이 발견되면
Then 효과 추적 완료 카드에 "🎉 패턴 발견!" 배지가 표시된다
And 타임라인 상단에 "나에게 맞는 방법" 요약이 표시된다
And 캠페인 카드에서 해당 조언에 "이 방법 N회 적용, N% 성공률" 힌트가 표시된다

사용자 시나리오

시나리오 1: 조언 적용 후 효과 확인

페르소나: 김셀러 (초보, 자동광고, 장사왕 2주차)

1. Surface Layer에서 "목표 ROAS를 300%→400%로 올리세요" 조언 확인
2. 쿠팡 광고센터에서 실제로 변경
3. 장사왕으로 돌아와서 [✓ 적용했어요] 클릭
4. 변경 전: 300%, 변경 후: 400% 입력, 저장
5. "효과 추적 시작됨, 7일 후 결과 확인" 메시지

... 7일 후 ...

6. 알림: "봄 신상품 캠페인 효과가 확인됐어요!"
7. 타임라인에서 확인:
   - 적용 전 ROAS: 280%
   - 적용 후 ROAS: 385%
   - "✨ 조언이 효과적이었어요! ROAS +37%"
8. 김셀러: "오, 장사왕 조언 믿을 만하네!"

결과: 조언에 대한 신뢰도 상승, 서비스 가치 인식

---

시나리오 2: 팀 인수인계

페르소나: 박셀러 (중급, 수동광고, 직원에게 인수인계)

1. 박셀러가 지난 3개월간 광고 운영하며 업무노트 작성
2. 신입 직원 합류
3. 신입: "이 캠페인 어떻게 운영해왔어요?"
4. 박셀러: "업무노트 보면 다 있어요"
5. 신입이 타임라인에서 확인:
   - 1월: 비검색 입찰가 조정 (효과 있었음)
   - 2월: 키워드 10개 추가 (효과 없었음 → 제외)
   - 3월: 목표 ROAS 조정 (효과 있었음)
6. 신입: "아, 이 캠페인은 비검색 조정이 효과 좋았구나"

결과: 히스토리 기반 인수인계, 학습 곡선 단축

3. HOW: 플로우 & 화면

정보 구조

[업무노트 IA]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

광고 분석 (메인 메뉴)
├── Surface Layer (캠페인 진단)
│   └── 캠페인 카드
│       ├── [✓ 적용했어요] 버튼 ← 업무노트 연동
│       ├── 최근 메모 미리보기
│       └── [메모 추가] 버튼

├── Deep Layer (상세 분석)
│   └── (기존 유지)

└── 📋 업무노트 ← 신규 메뉴
    ├── 타임라인 뷰 (기본)
    │   ├── 날짜별 그룹핑
    │   ├── 필터: 전체 / 캠페인별 / 효과추적중
    │   └── [+ 메모 추가] 버튼

    └── (향후) 캘린더 뷰, 캠페인별 뷰

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

사용자 플로우

[Flow 1: 조언 적용 기록]

Surface Layer 진입

캠페인 카드에서 조언 확인

[쿠팡 광고센터에서 조정하기 →] 클릭

(쿠팡에서 실제 조정)

장사왕으로 돌아옴

[✓ 적용했어요] 클릭

┌─────────────────────┐
│ 변경 전/후 입력     │
│ 메모 작성 (선택)    │
│ 알림 설정 (선택)    │
└─────────────────────┘

[기록하기] 클릭

업무노트 저장 + 효과 추적 시작

7일 후 효과 확인 (알림)


[Flow 2: 직접 메모 작성]

타임라인 뷰 진입

[+ 메모 추가] 클릭

┌─────────────────────┐
│ 연결 대상 선택      │
│ 메모 내용 작성      │
│ 효과 추적 (선택)    │
└─────────────────────┘

[저장] 클릭

타임라인에 표시


[Flow 3: 캠페인별 메모 확인]

Surface Layer 진입

캠페인 카드 확인

"최근 메모" 미리보기 확인

[펼쳐보기] 클릭

최근 3개 메모 목록 표시

[전체 보기 →] 클릭

해당 캠페인 필터된 타임라인 뷰

디자인 요청사항

항목내용
톤앤매너일기장/노트 느낌, 친근하고 정리된
타임라인날짜 헤더 + 카드 형태, 스크롤 가능
효과 표시Before/After 비교 테이블, 변화율 강조
아이콘📝 메모, ✓ 적용, ⏳ 추적중, ✨ 효과확인
컬러효과 있음=초록, 변화없음=회색, 효과없음=주황
참고Notion, Todoist, 토스 가계부

4. EDGE: 예외 & 엣지 케이스

데이터 예외

상황처리 방법
삭제된 캠페인메모 유지, "삭제된 캠페인" 표시, 효과 추적 불가
캠페인 이름 변경스냅샷된 이름 유지, 현재 이름과 다르면 표시
효과 추적 중 데이터 부족"데이터 부족으로 효과 측정 불가" 표시
적용 전 7일 데이터 없음있는 기간만 사용, 비교 기간 명시

사용자 예외

상황처리 방법
메모 수정수정 가능, 수정 이력은 미표시 (MVP)
메모 삭제Soft delete, 복구 불가 경고 후 삭제
변경 전/후 값 잘못 입력수정 가능, 효과 추적 재시작 옵션
동일 캠페인 다중 메모모두 표시, 효과 추적은 개별 진행

시스템 예외

상황처리 방법
알림 발송 실패재시도 3회, 실패 시 인앱 알림으로 Fallback
효과 계산 지연"계산 중" 표시, 최대 24시간
DB 저장 실패재시도, 실패 시 에러 메시지 + 내용 복사 가능

5. 성공 지표

5.1 지표 체계 개요

┌─────────────────────────────────────────────────────────────┐
│              E-10 업무노트 지표 체계                          │
├─────────────────────────────────────────────────────────────┤
│  [Sprint 내 판단]                                           │
│  Primary: "적용했어요" 클릭률 ≥ 15% AND 업무노트 작성률 ≥ 30% │
│  Secondary: 효과 추적 완료율 ≥ 50%                           │
├─────────────────────────────────────────────────────────────┤
│  [Sprint 이후 확인]                                         │
│  Lagging: 효과 확인 후 재방문율 +10%                         │
│  Ultimate: 조언별 실제 효과율 측정 인프라 확보                │
├─────────────────────────────────────────────────────────────┤
│  [Guard Rails]                                              │
│  • "적용했어요" UX 복잡도로 이탈 금지                        │
│  • 타임라인 로딩 3초 이내                                    │
│  • 효과 계산 정확도 유지                                     │
└─────────────────────────────────────────────────────────────┘

5.2 Sprint 내 판단 지표

계층지표산식목표
Primary"적용했어요" 클릭률클릭 유저 / 조언 노출 유저≥ 15%
Primary업무노트 작성 셀러 비율노트 작성 셀러 / 전체 유료 셀러≥ 30%
Secondary효과 추적 완료율추적 완료 건 / 추적 시작 건≥ 50%
Secondary직접 메모 작성률직접 메모 건 / 전체 노트 건측정 (기준선)

5.3 Sprint 이후 확인 지표

계층지표산식목표
Lagging효과 확인 후 재방문율효과 확인 후 7일 내 재방문+10%
Lagging조언 효과 있음 비율효과 있음 판정 / 효과 추적 완료측정 (서비스 개선 활용)
Ultimate조언 신뢰도효과 확인 후 재적용률측정 (서비스 개선 활용)

5.4 Guard Rails

  • "적용했어요" 버튼 클릭 후 이탈률 20% 초과 금지
  • 타임라인 페이지 로딩 3초 초과 금지
  • 효과 계산 오류율 5% 초과 금지
  • 업무노트 관련 CS 10건/주 초과 금지

5.5 성공 판단 기준

[Sprint 종료 시점]
✅ 성공: "적용했어요" 클릭률 ≥ 15% AND 업무노트 작성률 ≥ 30%
⚠️ 부분 성공: 둘 중 하나만 달성
❌ 실패: 둘 다 미달성 OR Guard Rails 위반

[Sprint +4주 후]
✅ 가설 검증: 효과 확인 후 재방문율 +10%
→ "업무노트가 조언 효과 검증 인프라로 작동한다"

5.6 GA4 이벤트 정의

이벤트명트리거파라미터
click_advice_applied"적용했어요" 버튼 클릭advice_type, campaign_id
create_work_note업무노트 저장note_type: manual/advice_applied
start_effect_tracking효과 추적 시작campaign_id, advice_type
complete_effect_tracking효과 추적 완료effect_result: positive/neutral/negative
view_timeline타임라인 뷰 진입-
click_effect_notification효과 알림 클릭campaign_id

장사왕 검증 지표 (내부)

지표설명활용
조언별 효과율어떤 조언이 효과적인가조언 로직 개선
효과 있음 비율조언 중 실제 효과 있는 비율서비스 가치 증명
조언 신뢰도효과 확인 후 재적용률사용자 신뢰 측정

6. 이벤트 트래킹 명세

6.1 GA4 이벤트 JavaScript 구현

javascript
// E-10 업무노트 이벤트

// 1. "적용했어요" 버튼 클릭
dataLayer.push({
  event: "work_note",
  event_name: "click_advice_applied",
  params: {
    campaign_id: "camp_12345",
    campaign_name: "봄 신상품",
    advice_type: "bidding_down",
    advice_id: "adv_67890",
    ad_type: "non_search",
    current_value: "200",
    recommended_value: "120",
    is_demo: "N"
  }
});

// 2. 업무노트 저장 (조언 적용)
dataLayer.push({
  event: "work_note",
  event_name: "create_work_note",
  params: {
    note_id: "note_12345",
    note_type: "advice_applied",
    target_type: "campaign",
    campaign_id: "camp_12345",
    advice_type: "bidding_down",
    before_value: "200",
    after_value: "120",
    has_memo: "Y",
    effect_tracking_enabled: "Y",
    is_demo: "N"
  }
});

// 3. 업무노트 저장 (직접 메모)
dataLayer.push({
  event: "work_note",
  event_name: "create_work_note",
  params: {
    note_id: "note_12346",
    note_type: "manual",
    target_type: "campaign",
    campaign_id: "camp_12345",
    has_memo: "Y",
    effect_tracking_enabled: "N",
    is_demo: "N"
  }
});

// 4. 효과 추적 시작
dataLayer.push({
  event: "work_note",
  event_name: "start_effect_tracking",
  params: {
    note_id: "note_12345",
    campaign_id: "camp_12345",
    advice_type: "bidding_down",
    tracking_period: 7,
    before_roas: 280,
    before_profit_per_100: 5,
    is_demo: "N"
  }
});

// 5. 효과 추적 완료
dataLayer.push({
  event: "work_note",
  event_name: "complete_effect_tracking",
  params: {
    note_id: "note_12345",
    campaign_id: "camp_12345",
    advice_type: "bidding_down",
    effect_result: "positive",  // positive, neutral, negative
    before_roas: 280,
    after_roas: 385,
    roas_change_percent: 37.5,
    before_profit_per_100: 5,
    after_profit_per_100: 18,
    is_demo: "N"
  }
});

// 6. 타임라인 뷰 진입
dataLayer.push({
  event: "work_note",
  event_name: "view_timeline",
  params: {
    filter_type: "all",  // all, campaign, tracking
    campaign_id: null,
    note_count: 15,
    tracking_count: 3,
    is_demo: "N"
  }
});

// 7. 캠페인 카드에서 메모 펼치기
dataLayer.push({
  event: "work_note",
  event_name: "expand_campaign_notes",
  params: {
    campaign_id: "camp_12345",
    note_count: 5,
    is_demo: "N"
  }
});

// 8. 효과 알림 클릭
dataLayer.push({
  event: "work_note",
  event_name: "click_effect_notification",
  params: {
    note_id: "note_12345",
    campaign_id: "camp_12345",
    notification_source: "push",  // push, in_app
    days_since_tracking: 7,
    is_demo: "N"
  }
});

// 9. 업무노트 수정
dataLayer.push({
  event: "work_note",
  event_name: "edit_work_note",
  params: {
    note_id: "note_12345",
    note_type: "advice_applied",
    edit_field: "memo",  // memo, before_value, after_value
    is_demo: "N"
  }
});

// 10. 업무노트 삭제
dataLayer.push({
  event: "work_note",
  event_name: "delete_work_note",
  params: {
    note_id: "note_12345",
    note_type: "advice_applied",
    days_since_created: 5,
    had_effect_tracking: "Y",
    is_demo: "N"
  }
});

6.2 이벤트 파라미터 상세

파라미터타입설명예시
note_typestring노트 유형advice_applied, manual
target_typestring연결 대상 유형campaign, keyword, general
advice_typestring조언 유형bidding_down, roas_adjust, keyword_exclude
effect_resultstring효과 판정 결과positive, neutral, negative
effect_tracking_enabledstring효과 추적 여부Y, N
roas_change_percentnumberROAS 변화율37.5, -15.2

7. 개발 범위

7.1 P0 (MVP 필수)

기능설명담당
WorkNote 테이블 설계스키마 및 API 설계BE
"적용했어요" 버튼조언 카드에 버튼 추가FE
적용 입력 모달변경 전/후 값 입력FE
업무노트 저장 APICRUD APIBE
타임라인 뷰 UI기본 목록 표시FE
캠페인별 필터타임라인 필터링FE

7.2 P1 (핵심 기능)

기능설명담당
효과 추적 로직Before/After 지표 계산BE
효과 결과 표시추적 완료 후 비교 테이블FE
직접 메모 작성타임라인/카드에서 메모 추가FE
캠페인 카드 연동최근 메모 미리보기FE
GA4 이벤트 연동전체 이벤트 트래킹FE

7.2-a P1-a (코칭 확장 - v2.0 추가)

핵심 가치 "성장 확신"을 위한 S52 확장 기능

기능설명담당
중간 체크 (D+3)효과 추적 중 트렌드 미리보기, midMetrics 저장BE
중간 체크 UI트렌드 아이콘 (🔼/➡️/🔽) + ROAS 변화율 표시FE
패턴 발견 로직동일 adviceType 3회+, 70%+ 동일 결과 → 패턴 등록BE
SellerPatterns 테이블preferredActions, avoidedActions 저장BE
패턴 표시 UI타임라인 상단 요약, 카드 배지, 발견 알림FE
S53 E-04 연계 준비forAIContext 필드로 SellerAIContext 호환BE

7.3 P2 (확장 기능)

기능설명담당
효과 확인 알림7일 후 푸시/인앱 알림BE
키워드별 노트키워드 단위 메모 연결FE/BE
효과 추적 기간 커스텀7일 외 기간 선택FE/BE
팀 공유 기능다중 사용자 공유BE
캘린더 뷰달력 형태 표시FE

7.4 개발 우선순위 매트릭스

┌─────────────────────────────────────────────────────────────────┐
│                    개발 우선순위 매트릭스                         │
├───────────────────┬──────────────────┬──────────────────────────┤
│     P0 (Week 1)   │    P1 (Week 2)   │      P2 (Backlog)       │
├───────────────────┼──────────────────┼──────────────────────────┤
│ WorkNote API      │ 효과 추적 로직    │ 알림 시스템              │
│ 적용했어요 버튼    │ 효과 결과 표시    │ 키워드별 노트            │
│ 입력 모달         │ 직접 메모 작성    │ 기간 커스텀              │
│ 타임라인 뷰       │ 카드 연동         │ 팀 공유                  │
│ 필터             │ GA4 이벤트        │ 캘린더 뷰                │
└───────────────────┴──────────────────┴──────────────────────────┘

8. 의존성 & 제약

기술 의존성

의존 항목상태비고
E-03 Surface Layer UIE-03 완료 후조언 카드에 버튼 추가
캠페인별 지표 API✅ 존재효과 추적용
알림 인프라⏳ 확인 필요푸시/인앱 알림
WorkNote 테이블신규 생성 필요BE 작업

제약 조건

  • 스크랩 한계: 쿠팡 광고 API 자체가 없음, 스크랩으로 성과 데이터만 수집 가능 → 셀러 직접 입력 의존
  • 효과 추적 기간: 7일 고정 (MVP), 향후 커스텀 가능
  • 동시 추적 제한: 동일 캠페인 다중 추적 가능 (충돌 없음)
  • 데이터 보관: 업무노트 1년 보관 (MVP)

9. 스토리 목록

Story ID제목규모우선순위담당상태
E-10-S-01WorkNote 테이블 설계 및 CRUD APIMP0BEdraft
E-10-S-02"적용했어요" 버튼 및 입력 모달MP0FEdraft
E-10-S-03타임라인 뷰 UI + 캠페인별 필터LP0FEdraft
E-10-S-04직접 메모 작성 기능SP1FEdraft
E-10-S-05효과 추적 로직 (Before/After 계산 + 효과 판정)LP1BEdraft
E-10-S-06캠페인 카드 업무노트 연동 (미리보기 + 펼침)MP1FEdraft
E-10-S-07GA4 이벤트 트래킹 (10개 이벤트)SP1FEdraft
E-10-S-08중간 체크 (D+3) 로직 및 UI (v2.0)MP1-aBE/FEdraft
E-10-S-09패턴 발견 로직 + SellerPatterns 테이블 (v2.0)LP1-aBEdraft
E-10-S-10패턴 표시 UI (타임라인/카드/배지) (v2.0)MP1-aFEdraft

Story Point 추정

규모Story합계
L (3pt)S-03, S-05, S-099
M (2pt)S-01, S-02, S-06, S-08, S-1010
S (1pt)S-04, S-072
총합21 SP

의존성 그래프

[BE] E-10-S-01 WorkNote API

    ┌────┴────┬──────────────┐
    ▼         ▼              ▼
[FE] S-02  [FE] S-03      [BE] S-05 효과추적
 적용버튼   타임라인           │
    │         │         ┌────┴────┐
    ▼         ▼         ▼         ▼
[FE] S-04  [FE] S-06  [BE] S-08  [BE] S-09
 직접메모   카드연동   중간체크   패턴발견
    │         │         │         │
    └────┬────┘         ▼         ▼
         ▼         [FE] S-08  [FE] S-10
    [FE] S-07       (D+3 UI)   패턴 UI
    이벤트트래킹

[v2.0 추가 흐름]
S-05 효과추적 → S-08 중간체크 (D+3)
S-05 효과추적 → S-09 패턴발견 → S-10 패턴 UI
S-09 패턴발견 → S53 E-04 SellerAIContext (연계)

10. QA 체크리스트

기능 테스트

"적용했어요" 버튼

  • [ ] Surface Layer 조언 카드에 버튼 정상 표시
  • [ ] 버튼 클릭 시 입력 모달 정상 오픈
  • [ ] 모달에서 변경 전/후 값 입력 가능
  • [ ] 메모 입력 (선택) 동작
  • [ ] 효과 추적 알림 체크박스 동작
  • [ ] [기록하기] 클릭 시 저장 및 토스트 표시
  • [ ] 저장 후 타임라인에 즉시 반영

타임라인 뷰

  • [ ] 날짜별 그룹핑 정상 표시
  • [ ] 최신순 정렬 동작
  • [ ] [전체] 필터 동작
  • [ ] [캠페인별] 필터 동작
  • [ ] [효과 추적 중] 필터 동작
  • [ ] [+ 메모 추가] 버튼 동작
  • [ ] 무한 스크롤/페이징 정상 동작

직접 메모 작성

  • [ ] 연결 대상 선택 (전체/캠페인/키워드)
  • [ ] 캠페인 드롭다운 정상 로딩
  • [ ] 메모 내용 입력 (필수)
  • [ ] 효과 추적 선택 옵션
  • [ ] 저장 후 타임라인 반영

효과 추적

  • [ ] 추적 시작 시 beforeMetrics 스냅샷 저장
  • [ ] 추적 중 "⏳ 효과 추적 중 (D+N)" 표시
  • [ ] 7일 경과 후 afterMetrics 자동 계산
  • [ ] Before/After 비교 테이블 정상 표시
  • [ ] 변화율(%) 정상 계산
  • [ ] 효과 판정 (✨/📊/💡) 정상 표시

캠페인 카드 연동

  • [ ] 메모 있는 캠페인에 최근 메모 미리보기 표시
  • [ ] [펼쳐보기] 클릭 시 최근 3개 목록 표시
  • [ ] [전체 보기] 클릭 시 필터된 타임라인 이동
  • [ ] [메모 추가] 버튼 동작

효과 추적 로직 테스트

효과 판정 기준

  • [ ] ROAS +10% 이상: "✨ 조언이 효과적이었어요!"
  • [ ] ROAS -10% ~ +10%: "📊 큰 변화 없어요"
  • [ ] ROAS -10% 이상 하락: "💡 다른 방법을 시도해보세요"
  • [ ] 순이익 기준도 동일하게 적용

경계값 테스트

  • [ ] ROAS 정확히 +10%: positive 판정
  • [ ] ROAS 정확히 -10%: neutral 판정
  • [ ] 데이터 부족 시 "데이터 부족" 메시지

이벤트 트래킹 테스트

  • [ ] click_advice_applied 발생 (버튼 클릭 시)
  • [ ] create_work_note 발생 (저장 시)
  • [ ] start_effect_tracking 발생 (추적 시작 시)
  • [ ] complete_effect_tracking 발생 (7일 후)
  • [ ] view_timeline 발생 (페이지 진입 시)
  • [ ] expand_campaign_notes 발생 (카드 펼침 시)
  • [ ] edit_work_note 발생 (수정 시)
  • [ ] delete_work_note 발생 (삭제 시)
  • [ ] 모든 이벤트에 is_demo 파라미터 포함

엣지 케이스 테스트

데이터 예외

  • [ ] 삭제된 캠페인의 노트: "삭제된 캠페인" 표시
  • [ ] 캠페인명 변경 시 스냅샷 이름 유지
  • [ ] 효과 추적 중 데이터 부족: 안내 메시지
  • [ ] 적용 전 7일 데이터 부족: 부분 데이터로 계산

사용자 예외

  • [ ] 노트 수정 후 저장 정상 동작
  • [ ] 노트 삭제 확인 경고 표시
  • [ ] Soft delete 후 복구 불가 안내
  • [ ] 동일 캠페인 다중 노트 정상 표시

시스템 예외

  • [ ] API 에러 시 재시도 버튼 표시
  • [ ] 저장 실패 시 내용 복사 기능
  • [ ] 네트워크 에러 시 오프라인 안내

성능 테스트

  • [ ] 타임라인 초기 로딩 3초 이내
  • [ ] 필터 변경 시 500ms 이내 반응
  • [ ] 효과 계산 지연 시 "계산 중" 표시

체크리스트

PO 승인 전 체크

  • [x] 문제 정의가 명확한가?
  • [x] 비즈니스 로직이 구체적인가? (데이터 구조, 효과 계산)
  • [x] 와이어프레임/플로우가 있는가?
  • [x] 엣지 케이스가 정의되었는가?
  • [x] 성공 지표가 측정 가능한가?
  • [x] 기술 의존성이 확인되었는가?

미결 사항

항목상태담당
효과 추적 기간 커스텀P2로 이관-
팀 공유 기능P2로 이관-
알림 기능P2로 이관-
담당자 배정⏳ 미정윤재

승인

항목확인
PO 승인
승인일2026-01-23
비고PRD 체크리스트 완료, 상세 스펙 검토 후 승인

참고 자료

연관 Epic

Epic연관성
E-03 Surface Layer조언 카드에 "적용했어요" 버튼 추가
E-04 Phase 2 순이익 번역효과 추적 시 순이익 지표 활용
S53 E-04 AI 진단 엔진SellerPatterns → SellerAIContext 연계 (v2.0)

S53 E-04 연계 (v2.0 추가)

┌─────────────────────────────────────────────────────────────────┐
│              E-10 업무노트 → S53 E-04 AI 진단 연계               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [S52 E-10 업무노트]                                            │
│  └─ SellerPatterns                                              │
│      ├─ preferredActions: ['bidding_down', 'roas_up']           │
│      ├─ avoidedActions: ['keyword_add']                         │
│      └─ forAIContext: { ... }                                   │
│                  │                                              │
│                  ▼ (데이터 연계)                                 │
│                                                                 │
│  [S53 E-04 AI 진단 엔진]                                        │
│  └─ SellerAIContext                                             │
│      ├─ 공통 컨텍스트 (업종, 스테이지 등)                         │
│      ├─ patterns: {                                             │
│      │    applyRate: 0.65,           // 조언 적용률              │
│      │    positiveOutcomeRate: 0.73,  // 긍정 결과 비율          │
│      │    preferredActions: [...],    // 선호 방법               │
│      │    avoidedActions: [...]       // 비선호 방법             │
│      │  }                                                       │
│      └─ Surface Layer 개인화 진단에 활용                         │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│  활용 예시:                                                      │
│  • "이 셀러는 비검색 입찰가 낮추기가 잘 맞아요" → 우선 추천       │
│  • "키워드 추가는 이 셀러에게 효과 없음" → 추천에서 제외          │
│  • 개인화된 조언 = 성장 확신 강화                                 │
└─────────────────────────────────────────────────────────────────┘

핵심: E-10은 패턴 수집 인프라, E-04는 패턴 활용 엔진

경쟁사 분석

서비스유사 기능차별화
쿠팡 광고센터없음 (API도 없고 변경 이력도 미제공)-
셀러허브메모 기능효과 추적 없음
노션범용 노트광고 연동 없음

기술 배경

[장사왕 쿠팡 광고 데이터 수집 방식]

쿠팡 광고 API: 없음 (쿠팡이 제공하지 않음)

장사왕: 쿠팡 광고센터 화면 스크랩 → ETL

수집 가능: 캠페인/키워드 성과 데이터 (노출, 클릭, 전환, ROAS 등)
수집 불가: 설정 변경 이력 (입찰가 변경, 키워드 추가/제외 등)

업무노트: 셀러가 직접 기록하여 "변경 행위" 데이터 확보

변경 이력

버전날짜변경 내용작성자
1.02026-01-21초안 작성PO
1.12026-01-23성공 지표 계층 구조 (5.1~5.6) 추가PO
1.22026-01-23이벤트 트래킹 JS 코드 예시 추가PO
1.32026-01-23개발 범위 P0/P1/P2 분류 추가PO
1.42026-01-23QA 체크리스트 추가PO
2.02026-01-29코칭 확장 v2.0: 핵심 가치 "성장 확신" 정의, 중간 체크(D+3), 패턴 발견/표시, S53 E-04 연계 설계 추가PO
2.12026-01-29adviceType 표준 정의 추가 (로직 1-1): E-03 Surface Layer 조언 케이스와 매핑, 패턴 분류 기준PO

작성일: 2026-01-21최종 수정: 2026-01-29

장사왕 Product Team