Skip to content

Epic Spec: E-02 Deep Layer

메타

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

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

문제 정의

현재 광고 대시보드는 "실험실" 메뉴에 숨겨져 있다. Sprint 52에서 쿠팡 광고 기능을 정식 출시하지만, 기존 사용자도 광고 분석 기능을 발견하기 어렵다.

또한, 쿠팡 광고는 검색 광고비검색 광고가 완전히 다른 특성을 가지는데, 현재 대시보드는 이를 구분하지 않고 통합 수치만 보여준다.

[현재 문제]
1. "실험실" 메뉴 → 찾기 어려움 → 광고 분석 사용률 저조
2. 검색/비검색 구분 없음 → 중수 셀러의 상세 분석 니즈 미충족
3. Surface Layer만으로는 "왜 이런 상태인지" 파악 불가

근거 데이터

지표수치출처비고
실험실 메뉴 진입률낮음 (추정)-측정 필요
광고 상세 진입률36.4%GA4 (S50)Surface → Deep
"검색/비검색 분석" VOC다수채널톡셀러 요청

Deep Layer vs Surface Layer

┌───────────────────────────────────────────────────────────────────┐
│                    Surface Layer (초보용)                          │
│   "지금 어때?" → 판단 제공 (🟢🟡🔴)                                │
│   기간: 고정 7일 | 선택 불가                                       │
│   정보량: 최소화 (Less is More)                                   │
└───────────────────────────────────────────────────────────────────┘

                      [상세 보기 클릭]

┌───────────────────────────────────────────────────────────────────┐
│                    Deep Layer (중수용)                             │
│   "왜 이래?" → 상세 데이터 제공                                    │
│   기간: 선택 가능 (7일/14일/30일/커스텀)                          │
│   정보량: 충분한 데이터 (캠페인/상품/키워드/검색/비검색)           │
└───────────────────────────────────────────────────────────────────┘

기대 효과

  1. 발견성 향상: 실험실 → 정식 메뉴 → 광고 분석 인지도 상승
  2. 중수 셀러 충족: 검색/비검색 분리 분석으로 상세 의사결정 지원
  3. Surface ↔ Deep 연계: "왜 빨간불인지" 상세 확인 가능

2. WHAT: 상세 요구사항

핵심 기능

#기능설명필수 여부
1정식 메뉴 승격실험실 → GNB 메인 메뉴 "광고 분석"필수
2검색/비검색 영역 비교 탭캠페인 상세에서 검색 영역 vs 비검색 영역 퍼포먼스 비교필수
3기간 필터7일/14일/30일/커스텀 선택필수
4캠페인 목록 개선정렬/필터필수
5Surface → Deep 연결Surface Layer에서 "상세 보기" 클릭 시 Deep Layer로 이동필수

Phase 2 예정: Status Badge (🟢🟡🔴), 요약 영역은 Surface Layer 검증 완료 후 Deep Layer에 순차 적용

비즈니스 로직

로직 1: 검색/비검색 영역 정의

[쿠팡 광고 구조]

캠페인 (Campaign)
├── 검색 광고 (Search)
│   └── 키워드 입찰 → 검색 결과 페이지 노출
│   └── 특성: 높은 구매 의도, 키워드 품질 중요

└── 비검색 광고 (Non-Search / Display)
    └── 상품 피드 기반 자동 타겟팅
    └── 특성: 브라우징 노출, 노출량 중요

[왜 분리가 중요한가?]
- 검색: CTR/CVR 중심 최적화 (키워드 조정)
- 비검색: 노출/클릭 볼륨 중심 최적화 (입찰가 조정)
- 통합 지표만 보면 어디서 문제인지 파악 불가

로직 2: 검색/비검색 데이터 소스

sql
-- 검색 광고 식별
-- CoupangAdKeywordDaily 테이블에 keyword가 있으면 검색 광고

-- 캠페인별 검색/비검색 분리 집계
SELECT
  campaignId,
  CASE
    WHEN keyword IS NOT NULL THEN 'SEARCH'
    ELSE 'NON_SEARCH'
  END as adType,
  SUM(exposureCount) as impressions,
  SUM(clickCount) as clicks,
  SUM(adCost) as spend,
  SUM(conversionAmount) as revenue
FROM CoupangAdKeywordDaily
WHERE vendorId = ?
  AND adDate BETWEEN ? AND ?
GROUP BY campaignId, adType;

확인 필요: 비검색 광고 데이터가 현재 수집되는지 BE 확인 필요

로직 3: 검색/비검색 지표 비교 상세

[비교 지표 목록]
┌────────────────────────────────────────────────────────────────────┐
│ 구분     │ 검색 광고                 │ 비검색 광고               │
├──────────┼───────────────────────────┼───────────────────────────┤
│ 노출수   │ 키워드 검색 결과 노출     │ 피드/상세페이지 노출      │
│ 클릭수   │ 검색 결과 클릭            │ 피드 클릭                 │
│ CTR      │ 검색 클릭/검색 노출 ×100  │ 피드 클릭/피드 노출 ×100  │
│ 전환수   │ 검색 유입 구매            │ 피드 유입 구매            │
│ CVR      │ 검색 전환/검색 클릭 ×100  │ 피드 전환/피드 클릭 ×100  │
│ 광고비   │ 검색 입찰 비용            │ 비검색 입찰 비용          │
│ 전환매출 │ 검색 유입 매출            │ 피드 유입 매출            │
│ ROAS     │ 검색 매출/검색 광고비×100 │ 피드 매출/피드 광고비×100 │
│ 순이익   │ 검색 매출-원가-광고비×1.1 │ 피드 매출-원가-광고비×1.1 │
│ CPC      │ 검색 광고비/검색 클릭     │ 피드 광고비/피드 클릭     │
└────────────────────────────────────────────────────────────────────┘

[비교 인사이트 제공]
- 검색 vs 비검색 CTR 비교: "검색 CTR 0.8% > 비검색 CTR 0.2%"
- 검색 vs 비검색 ROAS 비교: 어느 영역이 효율적인지
- 광고비 비중: "검색 70% : 비검색 30%"

지표별 정상 범위 (참고값)

지표검색 광고 정상 범위비검색 광고 정상 범위비고
CTR0.5% ~ 2.0%0.1% ~ 0.5%비검색이 낮은 게 정상
CVR5% ~ 15%2% ~ 8%비검색은 브라우징 유입
CPC100원 ~ 300원50원 ~ 150원비검색이 저렴
ROAS300% ~ 800%200% ~ 500%마진율에 따라 다름

로직 4: 기간 필터 옵션

[기간 선택지]
- 최근 7일 (기본값)
- 최근 14일
- 최근 30일
- 커스텀 (날짜 범위 직접 선택)

[Surface Layer와의 차이]
- Surface: 7일 고정, 선택 불가 ("지금" 집중)
- Deep: 기간 선택 가능 ("추이" 분석 가능)

로직 5: 메뉴 구조 변경

[핵심]
- 실험실 → 정식 메뉴로 "광고 분석" 승격
- 기존 GNB에 메뉴 추가 (구체적 배치는 디자인에서 확정)

[변경 사항]
- 광고 분석 메뉴 추가
- 하위 메뉴: 캠페인 대시보드 (Deep Layer), 광고 진단 (Surface Layer)

로직 6: 캠페인 목록 정렬/필터 옵션

[정렬 옵션]
- ROAS 높은순/낮은순 (기본: 낮은순 - 문제 캠페인 우선)
- 광고비 높은순/낮은순
- 순이익 높은순/낮은순
- 전환매출 높은순/낮은순

[필터 옵션]
- 상태별: 전체/🟢 건강/🟡 주의/🔴 위험 (Surface Layer 연계 시)
- 기간별: 7일/14일/30일/커스텀
- 캠페인 유형: 전체/검색만/비검색만 (P2)

사용자 시나리오

시나리오 1: Surface → Deep 전환

1. 셀러가 광고 진단(Surface Layer)에서 캠페인 A가 🔴 위험임을 확인
2. "왜 위험하지?" → "상세 보기" 클릭
3. Deep Layer 캠페인 상세 페이지로 이동
4. 검색/비검색 탭에서 비검색 광고가 ROAS 50%임을 발견
5. "비검색 광고 입찰가를 낮춰야겠다" 판단

시나리오 2: Deep Layer 직접 진입

1. 중수 셀러가 GNB에서 "광고 분석" 클릭
2. 캠페인 목록에서 기간을 30일로 변경
3. 추이 그래프에서 2주 전부터 ROAS 하락 확인
4. 캠페인 상세 → 검색/비검색 탭에서 검색 광고 CTR 하락 발견
5. "검색 키워드를 점검해야겠다" 판단

3. HOW: 플로우 & 화면

페이지 구조

[광고 분석 - 캠페인 목록]
┌─────────────────────────────────────────────────────────────────┐
│ 🔝 Header (GNB)                                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│ 📊 광고 분석                                                     │
│                                                                  │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 기간: [최근 7일 ▼]  |  정렬: [ROAS 낮은순 ▼]                │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                  │
│ [캠페인 목록]                                                    │
│ ┌───────────────────────────────────────────────────────────┐   │
│ │ 캠페인 A                                        ROAS 520%  │   │
│ │    광고비 ₩234,567 | 매출 ₩1,220,000 | 순이익 ₩85,000     │   │
│ │                                        [상세 보기 →]      │   │
│ ├───────────────────────────────────────────────────────────┤   │
│ │ 캠페인 B                                        ROAS 180%  │   │
│ │    광고비 ₩567,890 | 매출 ₩1,022,000 | 순이익 ₩12,000     │   │
│ │                                        [상세 보기 →]      │   │
│ ├───────────────────────────────────────────────────────────┤   │
│ │ 캠페인 C                                         ROAS 80%  │   │
│ │    광고비 ₩432,100 | 매출 ₩345,000 | 순이익 -₩120,000     │   │
│ │                                        [상세 보기 →]      │   │
│ └───────────────────────────────────────────────────────────┘   │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘


[광고 분석 - 캠페인 상세]
┌─────────────────────────────────────────────────────────────────┐
│ 🔝 Header (GNB)                                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ← 캠페인 목록 | 캠페인 A                                         │
│                                                                  │
│ 기간: [최근 7일 ▼]                                               │
│                                                                  │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ [키워드별] [상품별] [검색/비검색 영역] [SKU단위] ...         │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                  │
│ [검색/비검색 영역 탭 선택 시]                                    │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 검색 영역 vs 비검색 영역 퍼포먼스 비교 테이블                 │ │
│ │                                                               │ │
│ │ 구분 | 광고비 | 노출수 | 클릭수 | CTR | 전환수 | CVR |        │ │
│ │      | 전환매출 | ROAS | 순이익 | CPC                         │ │
│ ├─────────────────────────────────────────────────────────────┤ │
│ │ 추이 차트 (막대: 광고비/순이익/전환매출, 라인: ROAS)         │ │
│ └─────────────────────────────────────────────────────────────┘ │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Note: 요약 영역, Status Badge (🟢🟡🔴)는 Phase 2에서 Surface Layer 검증 후 순차 적용 예정

디자인 요청사항

항목내용
톤앤매너데이터 중심, 깔끔한 대시보드
컬러수익=초록, 손실=빨강 (순이익 컬럼 강조)
참고Google Ads 대시보드, Facebook Ads Manager
담당차봉희 이사님

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

데이터 예외

상황처리 방법
비검색 광고 데이터 없음"비검색 광고" 탭 비활성화 또는 "데이터 없음" 표시
검색 광고만 운영비검색 탭에 "해당 기간 비검색 광고 없음" 표시
기간 내 데이터 0건"선택한 기간에 광고 데이터가 없습니다" 안내
원가 미입력ROAS만 표시, 순이익은 "-" 또는 "원가 입력 필요"

사용자 예외

상황처리 방법
광고 연동 미완료"광고를 연동해주세요" 온보딩 안내
모바일 접속반응형 디자인 (테이블 → 카드 리스트)

시스템 예외

상황처리 방법
ETL 미완료 (state != CALCULATED)"데이터 계산 중입니다" 표시
API 타임아웃"잠시 후 다시 시도해주세요" + 재시도 버튼

5. 성공 지표

5.1 지표 체계 개요

┌─────────────────────────────────────────────────────────────┐
│              E-02 Deep Layer 지표 체계                       │
├─────────────────────────────────────────────────────────────┤
│  [Sprint 내 판단]                                           │
│  Primary: Deep Layer 진입률 +50% AND 검색/비검색 탭 사용률 ≥ 30% │
│  Secondary: Surface → Deep 전환율 ≥ 40%                      │
├─────────────────────────────────────────────────────────────┤
│  [Sprint 이후 확인]                                         │
│  Lagging: Deep Layer 리텐션 (7일 후 재방문율) ≥ 40%          │
│  Ultimate: KR2 이탈율 ≤ 15% 기여                            │
├─────────────────────────────────────────────────────────────┤
│  [Guard Rails]                                              │
│  • 기존 실험실 사용자 이탈 20% 이하                          │
│  • 페이지 로딩 시간 3초 이내                                 │
│  • "데이터 없음" 표시 비율 ≤ 20%                             │
└─────────────────────────────────────────────────────────────┘

5.2 Sprint 내 판단 지표

계층지표산식목표
PrimaryDeep Layer 진입률Deep Layer 진입 유저 / 전체 MAU+50% (기존 대비)
Primary검색/비검색 탭 사용률검색/비검색 탭 클릭 유저 / 캠페인 상세 진입 유저≥ 30%
SecondarySurface → Deep 전환율Deep 진입 유저 / Surface 진입 유저≥ 40%
Secondary기간 필터 사용률기간 변경 유저 / Deep Layer 진입 유저측정 (기준선)

5.3 Sprint 이후 확인 지표

계층지표산식목표
LaggingDeep Layer 리텐션7일 후 재방문 유저 / 첫 방문 유저≥ 40%
Lagging검색/비검색 분석 만족도NPS 또는 VOC 긍정 비율긍정적
Ultimate이탈율 기여Deep Layer 사용자 이탈율 vs 미사용자KR2 연결

5.4 Guard Rails (위반 시 롤백 검토)

  • 기존 실험실 광고 분석 사용자 이탈 20% 초과 금지
  • 캠페인 목록/상세 페이지 로딩 3초 초과 금지
  • "데이터 없음" 표시 비율 20% 초과 금지
  • API 에러율 1% 초과 금지

5.5 성공 판단 기준

[Sprint 종료 시점]
✅ 성공: Deep Layer 진입률 +50% AND 검색/비검색 탭 사용률 ≥ 30%
⚠️ 부분 성공: 둘 중 하나만 달성
❌ 실패: 둘 다 미달성 OR Guard Rails 위반

[Sprint +2주 후]
✅ 가설 검증: Deep Layer 리텐션 ≥ 40%
→ "검색/비검색 분리 분석이 중수 셀러의 상세 의사결정을 지원했다"

6. 이벤트 트래킹 명세

6.1 이벤트 목록

이벤트명트리거 시점우선순위
view_ad_dashboardDeep Layer 캠페인 목록 진입P0
view_campaign_detail캠페인 상세 진입P0
click_ad_type_tab검색/비검색 탭 클릭P0
change_period_filter기간 필터 변경P0
change_sort_option정렬 옵션 변경P1
click_campaign_item캠페인 목록에서 상세 클릭P1
export_data데이터 다운로드P2

6.2 핵심 이벤트 상세

view_ad_dashboard

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "view_ad_dashboard",
  params: {
    source: "gnb",                    // gnb | surface_layer | direct
    campaign_count: 5,                // 표시된 캠페인 수
    period: "7d",                     // 7d | 14d | 30d | custom
    has_search_data: "Y",
    has_nonsearch_data: "Y",
    is_demo: "N"
  }
});

view_campaign_detail

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "view_campaign_detail",
  params: {
    campaign_id: "camp_12345",
    campaign_name: "봄 신상품",
    source: "campaign_list",          // campaign_list | surface_layer
    period: "7d",
    has_search_data: "Y",
    has_nonsearch_data: "Y",
    total_spend: 234567,
    total_revenue: 1220000,
    roas: 520,
    is_demo: "N"
  }
});

click_ad_type_tab

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "click_ad_type_tab",
  params: {
    campaign_id: "camp_12345",
    tab: "non_search",                // all | search | non_search
    previous_tab: "all",
    period: "7d",
    search_roas: 520,
    nonsearch_roas: 180,
    is_demo: "N"
  }
});

change_period_filter

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "change_period_filter",
  params: {
    page: "campaign_list",            // campaign_list | campaign_detail
    previous_period: "7d",
    new_period: "30d",                // 7d | 14d | 30d | custom
    custom_start: null,               // custom인 경우만
    custom_end: null,                 // custom인 경우만
    is_demo: "N"
  }
});

change_sort_option

javascript
dataLayer.push({
  event: "ad_analysis",
  event_name: "change_sort_option",
  params: {
    sort_by: "roas",                  // roas | spend | profit | revenue
    sort_order: "asc",                // asc | desc
    campaign_count: 5,
    is_demo: "N"
  }
});

6.3 측정 타이밍

시점확인 항목
릴리즈 D+3이벤트 수집 정상 여부, source 파라미터 정확성
릴리즈 D+7Primary 지표 초기값 (진입률, 탭 사용률)
릴리즈 D+14전체 KPI 1차 판정, Guard Rails 점검
릴리즈 D+21Lagging 지표 확인 (리텐션)

7. 개발 범위 및 우선순위

7.1 P0 (필수, MVP)

항목설명담당
GNB 메뉴 승격실험실 → 정식 "광고 분석" 메뉴FE
검색/비검색 분리 API캠페인별 검색/비검색 지표 조회BE
검색/비검색 탭 UI캠페인 상세에 탭 추가FE
지표 비교 테이블검색 vs 비검색 지표 테이블FE
Surface → Deep 연결"상세 보기" 클릭 시 Deep Layer 이동FE

7.2 P1 (중요)

항목설명담당
기간 필터7일/14일/30일/커스텀 선택FE + BE
정렬 옵션ROAS/광고비/순이익별 정렬FE
이벤트 트래킹6개 이벤트 DataLayer 전송FE
모바일 반응형테이블 → 카드 리스트FE
데이터 없음 처리비검색 데이터 없음 시 안내FE

7.3 P2 (선택)

항목설명담당
추이 차트기간별 ROAS/광고비 추이FE
캠페인 비교2개 캠페인 병렬 비교FE + BE
데이터 내보내기CSV/Excel 다운로드FE + BE
검색/비검색 필터목록에서 검색만/비검색만 필터FE

8. 의존성 & 제약

기술 의존성

의존 항목상태비고
비검색 광고 데이터 수집✅ ETL 완료창훈 수석 작업, 개발서버 배포됨
CoupangAdKeywordDaily 테이블✅ 확인됨검색 광고 데이터

제약 조건

  • 레포: sellerking-web (메인 앱)
  • 기존 UI: 현재 실험실 광고 대시보드 UI 기반 확장
  • 데이터: CALCULATED 상태 데이터만 표시

확인 필요 사항

항목담당상태
비검색 광고 데이터 수집 현황창훈 수석✅ ETL 완료, 개발서버 배포됨
검색/비검색 분리 API 설계하록✅ DB 컬럼 존재 확인됨

9. 스토리 목록 (예정)

Epic Spec 승인 후 분해

Story ID제목규모우선순위담당상태
E-02-S-01GNB 메뉴 구조 변경 (실험실 → 정식)MP0FEdraft
E-02-S-02검색/비검색 분리 API 개발LP0BEdraft
E-02-S-03캠페인 상세 검색/비검색 탭 UI + 지표 비교 테이블MP0FEdraft
E-02-S-04Surface → Deep 연결SP0FEdraft
E-02-S-05기간 필터 기능 (7일/14일/30일/커스텀)SP1FE+BEdraft
E-02-S-06캠페인 목록 정렬/필터 옵션SP1FEdraft
E-02-S-07GA4 이벤트 트래킹 (7개 이벤트)SP1FEdraft
E-02-S-08모바일 반응형 (테이블 → 카드)MP1FEdraft

Story Point 추정

규모Story합계
L (3pt)S-023
M (2pt)S-01, S-03, S-086
S (1pt)S-04, S-05, S-06, S-074
총합13 SP

의존성 그래프

[BE] E-02-S-02 검색/비검색 API

    ┌────┴────┬──────────────┐
    ▼         ▼              ▼
[FE] S-03  [FE] S-01      [FE] S-05
 탭 UI      메뉴 승격       기간 필터

    ├───────────┬────────────┐
    ▼           ▼            ▼
[FE] S-04   [FE] S-06    [FE] S-07
Surface연결  정렬/필터    이벤트트래킹

10. QA 체크리스트

기능 테스트

메뉴 승격

  • [ ] GNB에 "광고 분석" 메뉴 노출
  • [ ] 메뉴 클릭 시 Deep Layer 캠페인 목록 이동
  • [ ] 실험실 메뉴에서 광고 분석 제거 또는 리다이렉트

캠페인 목록

  • [ ] 연동된 모든 캠페인 목록 표시
  • [ ] 캠페인별 광고비/매출/순이익/ROAS 표시
  • [ ] 정렬 옵션 (ROAS/광고비/순이익) 동작
  • [ ] 캠페인 클릭 시 상세 페이지 이동
  • [ ] 모바일에서 반응형 (테이블 → 카드)

캠페인 상세

  • [ ] 캠페인 정보 정상 표시
  • [ ] 뒤로가기 버튼 동작
  • [ ] 탭 메뉴 (키워드별/상품별/검색·비검색 영역/SKU단위) 표시

검색/비검색 탭

  • [ ] 검색/비검색 영역 탭 클릭 시 비교 테이블 표시
  • [ ] 비교 지표: 노출/클릭/CTR/전환/CVR/광고비/매출/ROAS/순이익/CPC
  • [ ] 검색 데이터만 있을 때 비검색 "데이터 없음" 표시
  • [ ] 비검색 데이터만 있을 때 검색 "데이터 없음" 표시
  • [ ] 추이 차트 정상 표시 (P2)

기간 필터

  • [ ] 7일/14일/30일 선택 가능
  • [ ] 커스텀 날짜 범위 선택 가능
  • [ ] 기간 변경 시 데이터 갱신
  • [ ] 선택한 기간 유지 (페이지 이동 시)

Surface → Deep 연결

  • [ ] Surface Layer "상세 보기" 클릭 시 Deep Layer 이동
  • [ ] 해당 캠페인 상세 페이지로 직접 이동
  • [ ] source 파라미터 "surface_layer" 전달

계산 로직 테스트

  • [ ] ROAS = 전환매출 / 광고비 × 100
  • [ ] CTR = 클릭수 / 노출수 × 100
  • [ ] CVR = 전환수 / 클릭수 × 100
  • [ ] CPC = 광고비 / 클릭수
  • [ ] 순이익 = 전환매출 - 원가 - 광고비×1.1
  • [ ] 검색/비검색 분리 집계 정확성

이벤트 트래킹 테스트

  • [ ] view_ad_dashboard 이벤트 발생
  • [ ] view_campaign_detail 이벤트 발생
  • [ ] click_ad_type_tab 이벤트 발생
  • [ ] change_period_filter 이벤트 발생
  • [ ] change_sort_option 이벤트 발생
  • [ ] 파라미터 (source, period, tab 등) 정확성
  • [ ] GA4 DebugView에서 확인

엣지 케이스 테스트

데이터 예외

  • [ ] 비검색 광고 데이터 없음 → 안내 메시지
  • [ ] 검색 광고만 운영 → 비검색 탭 "데이터 없음"
  • [ ] 기간 내 데이터 0건 → "선택한 기간에 광고 데이터가 없습니다"
  • [ ] 원가 미입력 → ROAS만 표시, 순이익 "-"

사용자 예외

  • [ ] 광고 연동 미완료 → "광고를 연동해주세요" 안내
  • [ ] 모바일 접속 → 반응형 디자인

시스템 예외

  • [ ] ETL 미완료 (state != CALCULATED) → "데이터 계산 중" 표시
  • [ ] API 타임아웃 → "잠시 후 다시 시도해주세요" + 재시도 버튼
  • [ ] 페이지 로딩 3초 이내 확인

체크리스트

PO 승인 전 체크

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

미결 사항

항목상태담당
비검색 광고 데이터 현황 확인⏳ 창훈 수석님께 확인 필요윤재
디자인 요청⏳ 스프린트 시작 전 전달 예정윤재

승인

항목확인
PO 승인
승인일2026-01-20
비고자동/수동 구분 컬럼 DB에 존재 확인됨

변경 이력

날짜변경 내용담당
2026-01-19Epic Spec 초안 작성윤재
2026-01-20PO 승인윤재
2026-01-22요약 영역/Status Badge 제거 (Phase 2 순차 적용)윤재
2026-01-23Notion PRD 수준 상세화 (검색/비검색 지표 비교 상세, 성공 지표 체계, 이벤트 트래킹 명세, 개발 범위 분류, QA 체크리스트)윤재

작성일: 2026-01-19최종 수정: 2026-01-23 (Notion PRD 수준 상세화)

장사왕 Product Team