Skip to content

Story: Surface Layer AI 진단 UI

메타

항목
Story IDE-04-S-05
EpicE-04 AI 진단 엔진
상태draft
우선순위P0
규모M
담당 개발자FE (수민님)

사용자 스토리

As a Pro10+ 셀러, I want Surface Layer에서 AI 진단 결과를 확인, So that 복잡한 광고 상황을 쉽게 이해하고 다음 행동을 알 수 있다.


수락 기준 (Acceptance Criteria)

AC-01: AI 진단 카드 표시 (Pro10+)

항목내용
GivenPro10+ 셀러가 Surface Layer 진입
When페이지 로드
ThenAI 진단 카드 표시 (Badge + 진단 + 제안)

UI 요소:

┌────────────────────────────────────────┐
│ 🟡 주의가 필요합니다           🤖 Beta │
│                                        │
│ 최근 7일간 ROAS가 180% → 150%로        │
│ 하락했어요. 비검색 광고비가 65%를       │
│ 차지하고 있어서, 입찰가를 15% 낮추면    │
│ 순이익이 개선될 수 있어요.              │
│                                        │
│ 💡 제안: 비검색 입찰가 15% 인하         │
│    예상 효과: 순이익 +12%               │
│                                        │
│        [업무노트에서 확인하기]          │
└────────────────────────────────────────┘

상세 스펙:

  • 🤖 Beta 라벨: 우상단에 표시
  • Badge: 🟢/🟡/🔴 + 한 줄 요약
  • 진단: 2-3문장, 맥락 설명
  • 제안: 구체적 액션 + 예상 효과 (있을 경우)
  • CTA: "업무노트에서 확인하기" → 업무노트로 이동

AC-02: 규칙 기반 카드 + 업그레이드 유도 (Basic/Pro)

항목내용
GivenBasic/Pro 셀러가 Surface Layer 진입
When페이지 로드
Then규칙 기반 카드 + AI 업그레이드 배너

UI 요소:

┌────────────────────────────────────────┐
│ 🟡 ROAS 150% - 효율 개선이 필요해요     │
│                                        │
│ ┌────────────────────────────────────┐ │
│ │ 🔒 AI 진단으로 업그레이드            │ │
│ │    Pro10 이상에서 맞춤 분석 제공     │ │
│ │              [자세히 보기]          │ │
│ └────────────────────────────────────┘ │
└────────────────────────────────────────┘

AC-03: 로딩 상태

항목내용
GivenAI 진단 API 호출 중 (캐시 미스)
When응답 대기
Then스켈레톤 로딩 + "AI가 분석 중..." 메시지

UI 요소:

┌────────────────────────────────────────┐
│ 🤖 AI가 분석 중...                      │
│                                        │
│ ████████████████████████               │
│ ██████████████                         │
│ ████████████████████                   │
└────────────────────────────────────────┘

AC-04: 에러/폴백 상태

항목내용
GivenAI API 실패 → 규칙 기반 폴백
Whensource: "rule" 응답
Then규칙 기반 카드 표시 (Beta 라벨 없음)

태스크 분해

Task 1: AI 진단 카드 컴포넌트 AC-01

  • [ ] 1.1: DiagnosisCard 컴포넌트 생성
  • [ ] 1.2: Badge + 진단 텍스트 영역
  • [ ] 1.3: 제안 영역 (suggestion 있을 때만)
  • [ ] 1.4: Beta 라벨
  • [ ] 1.5: CTA 버튼 (업무노트 이동)

Task 2: 업그레이드 배너 AC-02

  • [ ] 2.1: UpgradeBanner 컴포넌트
  • [ ] 2.2: aiDiagnosisEnabled 플래그 기반 조건부 렌더링
  • [ ] 2.3: "자세히 보기" 링크 (요금제 페이지)

Task 3: 로딩 상태 AC-03

  • [ ] 3.1: DiagnosisCardSkeleton 컴포넌트
  • [ ] 3.2: 로딩 메시지

Task 4: API 연동

  • [ ] 4.1: useDiagnosis 훅 생성
  • [ ] 4.2: 캐시/에러 상태 처리
  • [ ] 4.3: source 필드 기반 분기

Task 5: 마무리

  • [ ] 5.1: 반응형 처리
  • [ ] 5.2: PR 생성

Dev Notes (AI Agent 최적화)

영향 받는 소스 트리

src/
├── app/
│   └── dashboard/
│       └── ads/
│           └── components/
│               ├── DiagnosisCard.tsx        # 🆕 AI 진단 카드
│               ├── DiagnosisCardSkeleton.tsx # 🆕 로딩 상태
│               └── UpgradeBanner.tsx        # 🆕 업그레이드 유도
├── hooks/
│   └── useDiagnosis.ts                      # 🆕 진단 API 훅
└── types/
    └── diagnosis.ts                         # 🆕 타입 정의

컴포넌트 Props

typescript
interface DiagnosisCardProps {
  campaignId: string;
  badge: "🟢" | "🟡" | "🔴";
  diagnosis: string;
  suggestion?: {
    type: string;
    action: string;
    expectedEffect: string;
  };
  source: "ai" | "rule";
  suggestionId?: string;  // 업무노트 연동용
}

interface UpgradeBannerProps {
  currentPlan: string;
}

충돌 감지

항목상태설명
기존 코드 충돌🟡 주의Surface Layer 컴포넌트 수정/교체
스타일 충돌🟡 확인필요기존 카드 스타일과 일관성

의존성

의존설명상태
E-04-S-02AI 진단 API선행 필요
E-04-S-03요금제 분기 (aiDiagnosisEnabled)선행 필요

Dev Agent Record

항목
생성 AgentClaude Opus 4.5
생성일2026-01-27
마지막 수정2026-01-27
검증자-

검증 결과: 🔄 PENDING (PO 승인 대기) 검증일: -


생성일: 2026-01-27마지막 수정: 2026-01-27

장사왕 Product Team