Skip to content

Story: Deep Layer 캠페인 수 제한 UI

메타

항목
Story IDE-05-S-03
EpicE-05 요금제 정책 재설계 및 가드레일
상태draft
우선순위P0
규모M
담당창훈님 (하록님, 수민님)

사용자 스토리

As a 셀러, I want 요금제에 따라 볼 수 있는 캠페인 수를 명확히 알고 싶다, So that 업그레이드 필요성을 인지하고 결정할 수 있다.


수락 기준 (Acceptance Criteria)

AC-01: 캠페인 수 제한 표시

항목내용
GivenDeep Layer 캠페인 목록 진입
When캠페인 수가 제한 초과
Then제한 내 캠페인은 정상 표시, 초과분은 블러 처리

제한 수치:

티어캠페인 수
Starter1개 (미리보기)
Basic10개
Pro30개
Business무제한

AC-02: 블러 처리 UI

항목내용
Given제한 초과 캠페인
When화면 렌더링
Then블러 + 자물쇠 아이콘 + 업그레이드 CTA

UI 스펙:

┌────────────────────────────────────────┐
│ 캠페인 1 ✅                             │
│ ROAS 180% | 광고비 50,000원             │
├────────────────────────────────────────┤
│ 캠페인 2 ✅                             │
│ ROAS 220% | 광고비 30,000원             │
├────────────────────────────────────────┤
│ ░░░░░░░░░░░░ 🔒 ░░░░░░░░░░░░░░░░░░░░░░ │
│ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│                                        │
│  Pro 요금제로 업그레이드하면            │
│  30개 캠페인을 분석할 수 있어요         │
│                                        │
│         [업그레이드 하기]              │
└────────────────────────────────────────┘

AC-03: 잔여 한도 표시

항목내용
Given캠페인 목록 상단
When화면 렌더링
Then"10개 중 8개 사용 중" 표시

UI 스펙:

캠페인 분석 (8/10)  [Basic]
─────────────────────────────

태스크 분해

Task 1: API 연동 AC-01

  • [ ] 1.1: 요금제 정보 API 호출 (PlanGuardService)
  • [ ] 1.2: 캠페인 수 제한 가져오기
  • [ ] 1.3: 현재 캠페인 수 vs 제한 비교

Task 2: 블러 처리 컴포넌트 AC-02

  • [ ] 2.1: BlurredCampaignCard 컴포넌트 생성
  • [ ] 2.2: 블러 효과 CSS (backdrop-filter 또는 gradient)
  • [ ] 2.3: 자물쇠 아이콘 오버레이
  • [ ] 2.4: 업그레이드 CTA 버튼

Task 3: 잔여 한도 표시 AC-03

  • [ ] 3.1: CampaignLimitBadge 컴포넌트
  • [ ] 3.2: 요금제 티어 뱃지 (색상 구분)
  • [ ] 3.3: 한도 근접 시 경고 색상

Task 4: 업그레이드 플로우

  • [ ] 4.1: 업그레이드 버튼 클릭 → 요금제 페이지 이동
  • [ ] 4.2: 현재 티어 → 다음 티어 하이라이트

Dev Notes (AI Agent 최적화)

영향 받는 소스 트리

src/
├── components/
│   ├── campaign/
│   │   ├── CampaignList.tsx          # 🔄 수정
│   │   ├── BlurredCampaignCard.tsx   # 🆕
│   │   └── CampaignLimitBadge.tsx    # 🆕
│   └── common/
│       └── UpgradeCTA.tsx            # 🆕 재사용 가능
└── hooks/
    └── usePlanGuard.ts               # 🆕

블러 CSS 예시

css
.blurred-campaign {
  filter: blur(8px);
  pointer-events: none;
  position: relative;
}

.blurred-campaign::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.7);
}

의존성

의존설명상태
E-05-S-02PlanGuardService API선행 필수

생성일: 2026-01-27

장사왕 Product Team