# 관리자 콘솔 UI/UX 커버리지 감사

프로토타입이 아직 설계하지 않은 것 — 기존 풀스택 어드민을 기준으로 라우트·탭·다이얼로그 단위로 추적.

- **기준(reference)**: `startview-platform-admin/apps/admin` (Angular)
- **대상(prototype)**: `prototype.startview.co.kr/admin/main.dc.html`
- **작성일**: 2026.08.19
- **아티팩트**: https://claude.ai/code/artifact/4bb522af-7df7-4332-b04d-bc7c99928fea

범례: ✅ COVERED · 🟡 PARTIAL · 🔴 MISSING · ⚪ N/A(설계 불필요)

---

## 1. 총괄

| 지표 | 수 |
| --- | --- |
| 기존 어드민에서 발견한 화면·서피스 | **150** (라우트 99 + 비라우트 51) |
| ✅ 완전 커버 | 12 |
| 🟡 부분 커버 | 31 |
| 🔴 미커버 | 101 |
| ⚪ 설계 불필요 (리다이렉트·OAuth 콜백·중복 라우트) | 6 |

**한 줄 결론.** 프로토타입은 잘 설계된 *목록 레이어*다. 기존 목록 26개와 설정 4개, 그리고 깊이의 예시 1개(캠페인 목록 → 상세 → 폼)를 덮는다. 목록 아래 — 엔터티 상세, 등록/수정 폼, 승인·반려 다이얼로그, 상태 변경 흐름, 필터 모달, 탭별 작업 화면 — 은 제네릭하게 한 번 설계됐거나 아예 없다. 기존 사이드바에 살아 있는 9개 모듈은 프로토타입 내비게이션에 존재하지 않는다.

**구조적 원인.** 프로토타입의 모든 목록 라우트는 하나의 공용 테이블 컴포넌트로 렌더링되고, 모든 행 클릭은 하나의 공용 읽기 전용 드로어(`buildRowDetail`, [main.dc.html:1711](../../admin/main.dc.html))를 연다. 이 드로어는 필드를 테이블 컬럼에서 기계적으로 파생한다. 따라서 프로토타입에 "존재하는" 라우트라도 설계된 상세 화면이 없는 경우가 많다 — 방금 본 행의 미리보기가 있을 뿐이다.

---

## 2. 정보 구조 비교

의도된 리네이밍·재그룹은 갭으로 세지 않았다: **리뷰어 관리 → 크리에이터 관리**(어휘 변경), **무통장 입금 계좌 관리**를 사이트 설정 → 결제 관리로, **월별 지급 건 / 출석이벤트 현황**을 크리에이터 관리 하위로 이동.

| 기존 사이드바 그룹 | 프로토타입 | 판정 | 비고 |
| --- | --- | --- | --- |
| 대시보드 | 대시보드 | 🟡 | 처리 대기 큐 추가(개선). 애널리틱스 블록 누락 |
| 리뷰어 관리 | 크리에이터 관리 | 🟡 | 리네이밍 + 지급/출석 흡수. 포인트 정산 신청 누락 |
| 출석이벤트 현황 | → 크리에이터 관리 하위 | ✅ 병합 | 의도된 재그룹 |
| 광고주 관리 | 광고주 관리 | 🟡 | 3개 자식 모두 목록만, 상세 없음 |
| 고객센터 관리 | 고객센터 관리 | 🟡 | 목록 4개, 게시글 상세/에디터 없음 |
| 문의 관리 | 문의 관리 | 🟡 | 기존은 3탭 셸(1:1/광고/비즈니스). 프로토타입은 단일 목록 |
| 커뮤니티 관리 | 커뮤니티 관리 | 🟡 | 비활성 게시글 관리 자식 누락 |
| 비회원 상품 관리 | → 캠페인 관리 하위 | ✅ 병합 | 의도된 재그룹 |
| 캠페인 관리 | 캠페인 관리 | 🟡 | 가장 잘 덮인 모듈. 상세 탭·대부분 다이얼로그 누락 |
| 브랜드 존 관리 | 브랜드 존 관리 | 🔴 분할/손실 | 6개 중 4개만. **수요조사·수요 DB** — 모듈에서 가장 깊은 두 화면 — 소실 |
| 공동구매 관리 *(flag)* | — | 🔴 | `features.groupBuy` 게이팅이지만 실제 운영 화면 |
| 어필리에이트 관리 *(flag)* | — | 🔴 | `features.affiliate` 게이팅 |
| 리뷰어 지급 관리 | 월별 지급 건만 이관 | 🟡 | 포인트 정산 신청에 자리 없음 |
| 결제 관리 | 결제 관리 | 🟡 | 목록 3종 + 계좌 이관. 조치 다이얼로그 없음 |
| 프롬프트 관리 *(SUPER)* | — | 🔴 | 권한 게이팅 모듈, 4화면 |
| 관리자 관리 *(SUPER)* | — | 🔴 | 권한 게이팅 모듈, 2화면 + 등록 모달 + 로그 |
| 사이트 설정 | 사이트 설정 | ✅ | 배너·푸터·약관·SEO 전부 설계됨 |

**추가 관찰.** 기존 콘솔은 메뉴 2개를 `SUPER_ADMIN`으로, 2개를 환경 플래그로 숨긴다 — 프로토타입에는 권한/플래그에 따라 달라지는 사이드바의 설계 표현이 없다. 또한 내비게이션 진입점이 없는 고아 화면이 있다: `/guest/campaign`, `/campaign/:id/performance-report`(레이아웃 밖 전체 화면), `/shopby/connect`, 그리고 컴파일되지만 라우팅되지 않는 `penalty` 정책 화면.

---

## 3. 라우트 단위 비교

### 인증 · 셸

| 기존 라우트/화면 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/sign-in` | 관리자 로그인 | 없음 | 🔴 | 화면 전체, 인증 실패·전송 중 상태 | P1 |
| Top bar > 알림 | 알림 목록·읽음·딥링크 | 알림 popover | ✅ | — | — |
| Top bar > 내 정보 수정 | 본인 정보 수정 모달 | `/profile` | ✅ | 프로토타입이 페이지+최근 활동으로 개선 | — |
| Top bar > 로그아웃 | 로그아웃 | 계정 패널 + 확인 | ✅ | — | — |
| `/shopby/connect` | 샵바이 연동 콜백 | 없음 | ⚪ | 콘솔 밖 성공 페이지 | — |
| `**` → `/sign-in` | 알 수 없는 경로 | hash fallback | ⚪ | — | — |

### 대시보드

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/dashboard` | 접속자·충전액·가용 포인트, 추이 3종 | `/dashboard` | 🟡 | 애널리틱스 도넛 6종(성별·연령·지역·채널·직업·협업주제) + 범례 포맷 `{label} — {n}명` | P2 |

### 크리에이터(리뷰어)

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/reviewer` | 목록·상태 세그먼트·필터·엑셀·선택 발송 | `/reviewer` | 🟡 | 상태 세그먼트(전체/정상/차단/탈퇴), 체크박스 다중선택, 채널 아이콘 컬럼, 유튜브·인스타·틱톡 구독자 컬럼, 페이지네이션, 엑셀 진행 상태 | P1 |
| 리뷰어 필터 모달 | 채널·카테고리·팔로워·성별·나이·페널티·수신동의 | 없음 | 🔴 | 모달 전체 + 적용 필터 칩 + 저장 확인 | P1 |
| `/reviewer/:id` | 회원 상세 7섹션 | 제네릭 드로어 | 🔴 | §5 참조 | **P0** |
| `/reviewer/:id/update` | 회원 정보 수정 | 없음 | 🔴 | 폼 전체(비밀번호 재설정·수신 동의·검증) | P1 |
| `/reviewer-application-history` | 신청 이력 | 동일 | 🟡 | 상태 세그먼트(대기/선정/미선정/완료/취소), 캠페인·사용자 드로어, 리뷰어 분석 모달, 캠페인 필터 | P1 |
| `/gift-log` | 출석이벤트 포인트 | `/gift-log` | 🟡 | 기간 필터+초기화, 선물상자 상세 다이얼로그(+빈 상태) | P2 |
| `/reviewer-payout` | 월별 지급 건 | 동일 | 🟡 | 상태 탭 4종, 지급 완료 기록 모달(확인 근거), 지급 실패 기록 모달(사유), 월 선택 | **P0** |
| `/reviewer-point-settlement` | 포인트 정산 신청 처리 | 없음 | 🔴 | 화면 전체 + 완료/실패/반려 모달 3종 | **P0** |

### 광고주 · 기업

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/company` | 기업 목록 | `/company` | 🟡 | 기업 필터 모달, 기업 등록 모달, 페이지네이션 | P1 |
| `/company/:id` | 기업 상세(2탭·5목록) | 제네릭 드로어 | 🔴 | §5 참조 | **P0** |
| `/company/:id/update` | 기업 정보 수정 | 없음 | 🔴 | 폼 전체 | P1 |
| `/advertiser` | 광고주 목록 | `/advertiser` | 🟡 | 상태 세그먼트, 페이지네이션, 선택 후 이메일 발송 | P2 |
| `/advertiser/:id` `+/update` | 광고주 상세/수정(회원 공용) | 제네릭 드로어 | 🔴 | 소속 기업 카드 + 기업 상세 딥링크 | **P0** |
| `/advertiser-access-submission` | 접속 제출자료 | 동일 | 🟡 | 이용월 선택, 다운로드 진행/완료, 무기록 빈 상태 | P3 |

### 캠페인

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/campaign` | 목록·상태 9종·필터(20+필드)·엑셀 | `/campaign` | 🟡 | 캠페인 필터 모달, 상태 9종 전체(현재 3톤 축약), 페이지네이션 | P1 |
| `/campaign/:id` | 상세 + 5개 운영 탭 | campaign detail | 🟡 | 상태 변경 셀렉트, 진행 스텝퍼, 5개 탭 전부, 취소·강제 완료·복사·성과 보고서 | **P0** |
| ├ 신청자 목록 탭 | 적합도·리뷰어 분석·선정/미선정 | 없음 | 🔴 | 탭 전체 + 선정/미선정/반려 확인 + 일괄 상태 변경 + 상태 필터 | **P0** |
| ├ 선정된 리뷰어 탭 | 리뷰 확인·영상 원본·페널티·가이드 | 없음 | 🔴 | 탭 전체 + 페널티 부과 모달 + 맞춤형 가이드 모달(6섹션) + 선정취소 | **P0** |
| ├ 배송 관리 탭 | 옵션·배송지·송장 | 없음 | 🔴 | 탭 전체 + 송장 인라인 편집 | P1 |
| ├ 영상 검수 요청 탭 | 캠페인 단위 검수 | 없음 | 🔴 | 탭 전체(전역 검수와 별개 진입점) | P1 |
| └ 예약 관리 탭 | 방문형 예약 처리 | 없음 | 🔴 | 탭 전체 | P1 |
| `/campaign/create` `:id/update` | 캠페인 등록/수정(1,876 L) | campaign form | 🟡 | 상품 찾기 모달, 기업·상품 자동 채움, 스타트뷰몰 파트너 등록 모달, 맞춤형 가이드 모달, 취소 사유, 검증 오류, 임시저장 | **P0** |
| `/campaign/payment-waiting` | 결제 대기 | 동일 | 🟡 | 삭제 확인 | P3 |
| `/campaign-registration-request` | 등록 대기 목록 | 동일 | 🟡 | 승인/반려 확인 + 반려 사유 | P1 |
| `/campaign-registration-request/:id` | 등록 요청 검토(폼 재사용) | 없음 | 🔴 | 검토 모드 폼(읽기 + 승인/반려 액션 바) | P1 |
| `/reservation` | 예약 관리 | `/reservation` | 🟡 | 상태 세그먼트, 승인·반려(사유)·취소 다이얼로그, 캠페인/사용자 드로어, 예약 유의사항 | **P0** |
| `/video-inspection` | 영상 검수 | 동일 | 🟡 | 상태 세그먼트, 검수 승인, 수정 요청(사유), 플랫폼 영상 매칭 모달(+빈 상태), 영상 다운로드/재생, 리뷰어 분석 | **P0** |
| `/product` | 상품 목록 | `/product` | 🟡 | 페이지네이션 | P3 |
| `/product/:id` | 상품 상세 | 제네릭 드로어 | 🔴 | 전용 상세 + 옵션 테이블 + 삭제 확인 | P1 |
| `/product/create` `:id/update` | 상품 등록/수정 | 없음 | 🔴 | 폼 전체 + 옵션 반복 UI + 미리보기 모달 | **P0** |
| `/guest/product` | 비회원 상품 | 동일 | ✅ | — | — |
| `/guest/campaign` | 비회원 캠페인(nav 없음) | 없음 | 🔴 | 캠페인 목록 비회원 변형 | P3 |
| `/performance-report` | 보고서 대상 목록 | 동일 | 🟡 | 캠페인 필터 모달 | P2 |
| `/performance-report/campaign/:id` | 성과 보고서 문서 | 없음 | 🔴 | 문서 전체(광고주 대면), 정렬 토글, 리뷰어 카드, 검색, 인쇄/PDF | **P0** |

### 브랜드 존

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/brand` | 브랜드 목록 | `/brand` | 🟡 | 세그먼트 4종(전체/회원사/미가입/영업 대상), 노출 순서 변경 | P2 |
| `/brand/create` `:id/update` | 브랜드 등록/수정 | 없음 | 🔴 | 폼 + 썸네일 포지션 조정기 + 홈·브랜드존·상세 히어로 3중 미리보기 + 회원사 연결 검색 | P1 |
| `/demand-survey` | 수요조사 목록 | 없음 | 🔴 | 목록 + 세그먼트 + 행 액션 메뉴 + 비회원 기업만 필터 | **P0** |
| `/demand-survey/:id` | 수요조사 상세 + 제안 랭킹표 | 없음 | 🔴 | 상세 전체 + 순위·팔로워·제안 단가·2차 활용/연장·인게이지먼트 표 + 승인/반려/수정 | **P0** |
| `/demand-survey/create` `:id/update` | 등록/수정 | 없음 | 🔴 | 폼 전체 + 기존 상품/신규 상품 예약 분기 | P1 |
| `/demand-survey/:id/proposals` | 제안 목록 | 없음 | 🔴 | 화면 전체 | P1 |
| `…/proposals/:pid` | 제안 상세 | 없음 | 🔴 | 화면 전체 | P1 |
| `/demand-db` | 수요 DB | 없음 | 🔴 | 화면 전체(단일 최대 복잡도): 브랜드 피커, 신청자 드로어, 필터 패널, 적용 필터 칩, 비교표↔카드, 다중선택+추천 사유, 빈/오류/재시도 | **P0** |
| `/demand-payment` | 결제 승인 목록 | 동일 | 🟡 | 승인 대기/완료 세그먼트, 승인 확인 | P2 |
| `/demand-payment/:id` | 결제 상세(금액 분해) | 제네릭 드로어 | 🔴 | 상세 전체 + 승인 후 잠금 + 로딩 | **P0** |
| `/collaboration-inspection` | 협업 검수 | 동일 | 🟡 | 세그먼트, 승인 확인, 수정 요청(사유), 콘텐츠 미리보기 | P1 |
| `/collaboration-settlement` | 협업 정산 | 동일 | 🟡 | 정산 메모, 정산 처리 확인, 완료/실패 상태 | P1 |

### 공동구매 · 어필리에이트 *(feature-flagged)*

| 기존 | 목적 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- |
| `/group-buy-inspection` | 개설 검수(6상태) | 🔴 | 목록 + 세그먼트 + 행 펼침 상세 + 승인/반려(사유) | P2 |
| `/group-buy-video-inspection` | 공동구매 영상 검수 | 🔴 | 목록 + 승인/반려(사유) | P2 |
| `/affiliate-inspection` | 어필리에이트 개설 검수 | 🔴 | 목록 + 5상태 세그먼트 + 행 펼침 상품 정보 + 승인/반려 | P2 |
| `/affiliate-attribution` | 귀속·승자·재판정 | 🔴 | 화면 전체 + "이전 지급 정리 먼저" 차단 상태 + 재판정 확인 | P2 |

### 결제

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/bank-transfer-deposit` | 충전 요청 | 동일 | 🟡 | 상태 세그먼트, 입금 확인 사이드 다이얼로그, 요청 취소 확인, 기업 상세 드로어 | **P0** |
| `/bank-transfer-refund` | 환불 요청 | 동일 | 🟡 | 상태 세그먼트, 환불 완료 다이얼로그, 반려(사유), 기업 상세 드로어 | **P0** |
| `/payment` | 결제 내역(10상태) | `/payment` | 🟡 | 상태 세그먼트 10종, 환불 처리 모달(사유+금액, 부분 환불), 기업 상세 드로어 | **P0** |
| `/bank-account` | 입금 계좌 정보 | 동일 | ✅ | — | — |

### 커뮤니티 · 고객센터

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/community` | 게시판 목록 | `/community` | 🟡 | 순서 변경 모드 | P3 |
| `/community/:id` | 게시판 상세 + 게시글 목록 | 제네릭 드로어 | 🔴 | 상세 전체 + 게시글 표 + 순서 저장 + 삭제 확인 | P1 |
| `/community/create` `:id/update` | 게시판 등록/수정 | 없음 | 🔴 | 폼 전체(유형·상태·홈 고정) | P2 |
| `/community/:id/post` `+/:pid/update` | 게시글 작성/수정 | 없음 | 🔴 | 에디터 전체 + 대표 이미지 + 발행 예약 + 홈/카드 미리보기 | **P0** |
| `/community/scheduled-posts` | 발행 예정 | 동일 | 🟡 | 발행 시각 변경 다이얼로그, 수정/삭제 행 메뉴 | P2 |
| `/community/inactive-posts` | 비활성 게시글 | 없음 | 🔴 | 메뉴 항목 + 목록 | P2 |
| `/notice` `/faq` | 공지·FAQ 목록 | 동일 | 🟡 | 행 액션 메뉴, 순서 변경, 삭제 확인 | P2 |
| `/notice/:id` `/faq/:id` | 상세 | 제네릭 드로어 | 🔴 | 본문 렌더 상세 | P2 |
| `…/create` `…/update` | 등록/수정 | 없음 | 🔴 | 에디터 폼(노출·고정·FAQ 대상 3종) | P1 |
| `/plan` `/guide` (+상세/작성) | 요금제·가이드 게시글 CRUD | 목록만 | 🟡 | 게시글 상세 + 작성/수정 | P2 |

### 문의

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/inquiry-management` | 문의 3종 탭 셸 | 동일 | 🟡 | 세그먼트 3종 + 탭별 URL 유지 | **P0** |
| `/inquiry` | 1:1 문의 목록 | (위 목록) | 🟡 | 1:1 문의 필터 모달, 삭제 | P1 |
| `/inquiry/:id` | 문의 상세 + 답변 | 제네릭 드로어 | 🔴 | 답변 편집기, 첨부 목록, 상태 변경, 캠페인 딥링크, 삭제 확인 | **P0** |
| `/consultation` | 광고문의 목록 | 없음 | 🔴 | 탭 + 목록 + 상태 변경·삭제 | P1 |
| `/consultation/:id` | 광고문의 상세 + 메모 | 없음 | 🔴 | 상세 + 메모 저장 + 상태 4종 | P1 |
| `/partner-inquiry` | 비즈니스 상담 목록 | 없음 | 🔴 | 탭 + 목록 | P1 |
| `/partner-inquiry/:id` | 상담 상세 + 메모 | 없음 | 🔴 | 상세 + 메모 + 개인정보 동의 표시 | P1 |

### 관리자 · 시스템 · 사이트 설정

| 기존 | 목적 | 프로토타입 | 커버리지 | 누락 | 우선 |
| --- | --- | --- | --- | --- | --- |
| `/admin` *(SUPER)* | 관리자 목록 + 등록 모달 | 없음 | 🔴 | 목록 + 등록 모달(아이디/비밀번호/관리자명/연락처) | P1 |
| `/admin/:id` *(SUPER)* | 관리자 상세 | 없음 | 🔴 | 상세 + 권한 셀렉트 + 차단 + 관리자 로그 + 삭제 확인 | P1 |
| `/prompt` (+form, `:id`) *(SUPER)* | AI 프롬프트 관리(7용도) | 없음 | 🔴 | 목록 + 상세 + 폼 + 파라미터 목록 + 테스터 결과 패널 | P2 |
| 페널티 정책 *(unrouted)* | 점수별 이용 정지 일수 | 없음 | 🔴 | 정책 편집 + 저장 | P3 |
| `/banner` | 배너 목록·토글·순서 | `/banner` | ✅ | — | — |
| `/banner/create` `:id/update` | 배너 등록/수정 | 없음 | 🔴 | 폼 + 이미지 업로드 상태 | P2 |
| `/footer` `/seo` `/terms` | 사이트 정보 설정 | 동일 | ✅ | — | — |
| `/demand-survey-proposal/*` ×3 | 구 URL 리다이렉트 | — | ⚪ | — | — |

---

## 4. 모듈별 롤업

| 모듈 | ✅ | 🟡 | 🔴 | 미커버 핵심 |
| --- | --- | --- | --- | --- |
| 대시보드 | 1 | 1 | 1 | 애널리틱스 도넛 6종 |
| 크리에이터 | 0 | 4 | 5 | 회원 상세·수정, 리뷰어 필터/분석 모달, 포인트 정산 신청 |
| 광고주·기업 | 0 | 3 | 5 | 기업 상세(2탭·5목록), 기업 수정/등록/필터, 광고주 상세, 캐시·구독 조치 |
| 캠페인 | 1 | 9 | 11 | 상세 5탭, 상품 찾기·파트너·가이드 모달, 상품 상세/폼, 성과 보고서 문서 |
| 브랜드 존 | 0 | 4 | 8 | 수요조사 5화면, 수요 DB, 결제 상세, 브랜드 폼 |
| 공동구매·어필리에이트 | 0 | 0 | 4 | 4화면 전부 + 플래그 상태 |
| 결제 | 1 | 3 | 4 | 입금 확인·환불 처리·반려 다이얼로그, 기업 드로어 |
| 커뮤니티·고객센터 | 0 | 6 | 9 | 게시글 에디터, 게시판 상세/폼, 공지·FAQ 상세/작성, 비활성 게시글 |
| 문의 | 0 | 2 | 5 | 3탭, 문의 상세·답변, 광고/비즈니스 상담 목록·상세 |
| 관리자·시스템·설정 | 5 | 0 | 6 | 로그인, 관리자 관리, 프롬프트, 배너 폼, 페널티 정책 |

---

## 5. 상세 화면 깊이 — 가장 큰 누락 3건

프로토타입의 모든 목록은 같은 제네릭 드로어를 연다: 썸네일, 제목, 상태 칩 1개, 우측 정렬 컬럼을 "지표"로 재라벨, 나머지 컬럼을 평평한 필드 목록으로, 하드코딩된 3줄 이력, 테이블 보조 버튼에서 빌려온 액션 1개. 실제 상세는 다음과 같다.

### 회원 상세 (리뷰어·광고주 공용) — `/reviewer/:id` · `/advertiser/:id`

- **커버됨**: 이름·연락처·이메일·상태 칩 (제네릭 드로어 한정)
- **누락 섹션**: 기본 정보 확장(성별·생년월일·직업·협업주제·얼굴공개여부·주소), 등록 채널 정보(채널별 카테고리·구독자, 없을 때 빈 상태), 소속 기업 카드 + 기업 상세 딥링크, 포인트 증감 내역, 페널티 내역, 참여 캠페인 목록, 관리자 로그
- **누락 액션**: 회원 상태 변경(정상/차단/탈퇴/대기), 포인트 수동 변경(지급/차감 + 사유), 페널티 부여/차감(사유·점수), 이메일 발송, SMS 발송, 정보 수정 진입
- **상태**: 차단·탈퇴 시 액션 비활성, 채널 없음, 소속 기업 없음, 포인트 0, 페널티 없음

### 기업 상세 — `/company/:id`

- **커버됨**: 상호명·담당자·등록일 (제네릭 드로어 한정)
- **누락 탭**: 기업 정보 / 샵바이 파트너 정보
- **누락 섹션**: 운영 채널 정보, 소속 회원, 등록 상품, 등록 캠페인, 캐시 로그, 기업 로그, 제출 문서(사업자등록증·통장사본·통신판매신고증 다운로드), 파트너 어드민 계정
- **누락 액션**: 캐시 수동 변경(지급/차감 + 사유 + 기간), 이벤트 캐시 지급, 구독 ON/OFF, 기업 정보 수정
- **상태**: 미구독/구독중, 환불 가능 캐시 0, 제출 문서 미제출, 샵바이 미연동

### 캠페인 상세 — `/campaign/:id` (프로토타입의 유일한 심화 상세)

- **커버됨**: 헤더(썸네일·상태·기업·유형), 지표 5종, 캠페인 정보 그룹, 상품 정보 그룹, 링크 복사 / 정보 수정
- **누락**: 상태 변경 셀렉트(10상태), 진행 스텝퍼(모집중→리뷰어 선정→리뷰 등록 기간→검수중→리워드 지급), 안내/주의사항 "확인하기" 모달, 취소 사유·강제 완료 사유/일시, 캠페인 취소·강제 완료·복사·성과 보고서 액션, 매장 정보 블록
- **누락 탭**: 신청자 목록 · 선정된 리뷰어 목록 · 배송 관리 · 영상 검수 요청 · 예약 관리 (각 탭이 자체 표·필터·행 액션·모달을 가진 별개 작업 화면)

---

## 6. 모달·드로어·마이크로 플로우 — 51개 중 2개 설계됨

프로토타입은 알림 popover와 계정/로그아웃 확인만 설계했다. 나머지는 6개 반복 패턴으로 묶이므로, 패턴을 한 번 설계하면 대부분이 해결된다.

| 패턴 | 기존 인스턴스 | 커버 | 우선 |
| --- | --- | --- | --- |
| 반려/취소 사유 입력 | 캠페인 취소, 예약 반려, 환불 반려, 개설 반려(공동구매·어필), 영상 수정 요청, 협업 수정 요청, 정산 반려, 등록 반려, 지급 실패 — **9곳** | 🔴 | **P0** |
| 단순 확인 다이얼로그 | 삭제(공지·FAQ·게시판·상품·관리자·문의), 승인, 선정/미선정/선정취소, 캠페인 복사, 강제 완료, 충전 취소 — **15곳+** | 🔴 | **P0** |
| 사이드 드로어(읽기 전용 컨텍스트) | 기업 상세·사용자 상세·캠페인 상세 — 결제·예약·신청 이력·충전/환불에서 반복 호출 | 🔴 | **P0** |
| 필터 모달 | 리뷰어·기업·캠페인·1:1문의·상태·수요 DB — **6곳** + 적용 필터 칩 | 🔴 | P1 |
| 값 입력 실행 모달 | 포인트 수동 변경, 캐시 수동 변경, 이벤트 캐시 지급, 페널티 부여/차감, 환불 처리(사유+금액), 지급 완료 기록(확인 근거), 발행 시각 변경 — **8곳** | 🔴 | **P0** |
| 콘텐츠 미리보기/매칭 | 플랫폼 영상 매칭, 이미지 상세, 상품 미리보기, 게시글 미리보기, 맞춤형 리뷰 가이드(6섹션 편집), 리뷰어 분석 | 🔴 | P1 |
| 등록 모달 | 기업 등록, 관리자 등록, 스타트뷰몰 파트너 등록, 상품 찾기 | 🔴 | P1 |

---

## 7. UX 상태

| 상태 | 기존 발생 지점 | 프로토타입 | 우선 |
| --- | --- | --- | --- |
| Loading | 모든 목록·상세가 서버 리소스 기반 ("결제 정보를 불러오는 중...") | 없음 | P1 |
| Error + retry | 수요 DB "다시 시도", 조회 실패 토스트 | 없음 | P1 |
| Empty (데이터 없음) | 목록별 고유 문구, 채널 없음, 선정 리뷰어 없음, 선물상자 기록 없음 | ✅ 설계됨 | — |
| Empty (검색·필터 무결과) | "조건에 맞는 신청자가 없습니다" + 필터 초기화 유도 | 캠페인만 | P2 |
| Success feedback | 토스트 492회 사용 — 저장·승인·발송·이체 | 프로필 저장만 | P1 |
| Validation error | 캠페인·상품·회원 수정 폼 검증 | 없음 | P1 |
| Disabled / 이미 처리됨 | "이미 승인된 결제입니다", 계좌 미등록 시 이체 불가 | 지급 화면만 | P1 |
| 선행 조건 차단 | 어필리에이트 "이전 지급 정리 먼저", 지급 대상 미정 | 없음 | P2 |
| 권한 거부 / 역할별 UI | SUPER_ADMIN 전용 메뉴 2종, RoleGuard 리다이렉트 | 없음 | P1 |
| 기능 플래그 숨김 | 공동구매·어필리에이트 메뉴가 환경별로 사라짐 | 없음 | P2 |
| 장기 작업 | 전체 엑셀 다운로드 진행 | 없음 | P2 |
| 다중 선택 활성 | 체크박스 → SMS/이메일 발송, 일괄 상태 변경 | 없음 | **P0** |
| 페이지네이션·건수 | 40개 화면이 서버 페이지네이션 그리드 | 없음 | **P0** |
| 컬럼 정렬 | 데이터 그리드 정렬 | 없음 | P2 |

---

## 8. 설계 TODO

### P0 — 없으면 핵심 운영 워크플로가 완결되지 않음

1. **테이블 시스템: 페이지네이션·선택·일괄 액션 바** — 40개 페이지가 서버 페이지네이션, 15개가 행 체크박스. 총 건수·페이지 컨트롤·선택 개수, 전체 선택/해제, 선택 후 SMS·이메일·일괄 승인/반려·일괄 상태 변경. 상태: 선택 0/일부/전체, 마지막 페이지, 필터 0건, 정렬 활성. → 기존 26개 목록에 한 번에 적용됨.
2. **엔터티 상세 템플릿** (회원·기업·상품·문의) — `buildRowDetail` 제네릭 드로어를 대체. 헤더(신원·상태), 접이식 정보 섹션, 관련 엔터티 목록, 증감 로그, 관리자 로그. 액션: 상태 변경, 값 조정, 발송, 수정 진입, 삭제.
3. **캠페인 상세 운영 탭 5종** — 모집→선정→배송→검수→예약. 선정/미선정, 일괄 상태 변경, 선정취소, 페널티 부과, 맞춤형 가이드, 리뷰어 분석, 송장 등록.
4. **수요 DB** — 브랜드 피커, 신청자 드로어, 상세 필터(카테고리·플랫폼·팔로워·원고료), 적용 필터 칩, 비교표↔카드 전환, 다중 선택, 추천 사유 작성. 상태: 브랜드 미선택, 무결과, 오류+재시도, 추천 사유 미입력 경고.
5. **수요조사 목록·상세·제안 드릴다운** (5화면) — 제안 리뷰어 순위표(팔로워·평균 조회수·제안 단가·2차 활용·인게이지먼트), 승인·반려·숨김.
6. **지급·정산 실행 화면** — 월별 지급 건 상태 탭 + 완료/실패 기록 모달, 포인트 정산 신청 화면 일체. 상태: 계좌 미등록(이체 불가), 처리 중, 실패, 완료 잠금.
7. **결제 조치 다이얼로그 3종** — 입금 확인, 환불 처리(사유+금액, 부분 환불), 반려. 상태: 금액 검증 오류, 이미 처리됨, 처리 중, 성공.
8. **문의 3탭 셸 + 문의 상세/답변** — 답변 작성/수정, 첨부, 상태 변경, 내부 메모.
9. **상품 등록/수정 + 미리보기** — 배송형↔방문형 필드 분기, 옵션 반복 입력, 업로드 진행, 검증 오류.
10. **성과 보고서 문서** — 광고주 대면 산출물. 캠페인 요약 + 리뷰어별 성과 카드, 조회수순/좋아요순, 검색, 인쇄 레이아웃.

### P1 — 중요한 운영 역량 또는 주요 상세 화면

- 필터 모달 패턴 + 적용 필터 칩 (6곳 재사용)
- 상태 세그먼트 패턴 (12개 목록이 상태 탭으로 작업을 나눔)
- 회원 정보 수정 폼 · 기업 정보 수정 폼
- 게시글 에디터(커뮤니티·공지·FAQ·요금제·가이드 공용) + 홈/카드 미리보기 + 발행 예약
- 브랜드 등록/수정 — 썸네일 포지션 조정기 + 3중 미리보기
- 수요조사 등록/수정, 제안 목록·상세
- 결제 상세(브랜드 존) — 금액 분해와 승인 잠금
- 관리자 관리 목록·상세·등록 모달·로그, 권한별로 달라지는 사이드바
- 로그인 화면 + 인증 실패 상태
- 협업 검수/정산 조치 — 수정 요청 사유, 정산 메모, 처리 결과
- 영상 검수 모달군 — 승인, 수정 요청, 플랫폼 영상 매칭, 리뷰어 분석
- 예약 조치 3종 — 승인·반려(사유)·취소, 예약 유의사항
- 상품 상세, 커뮤니티 게시판 상세, 공지/FAQ 상세
- Loading · error+retry · validation · success toast 상태 정의

### P2 — 보조 워크플로·플래그 모듈·설정

- 대시보드 애널리틱스 도넛 6종
- 공동구매 개설 검수·영상 검수 (행 펼침 상세, 승인/반려)
- 어필리에이트 개설 검수·귀속/지급 대상 확인 (선행 조건 차단 상태 포함)
- 프롬프트 관리 4화면
- 비활성 게시글 관리(메뉴 항목 포함), 커뮤니티 게시판 등록/수정
- 배너 등록/수정, 요금제·가이드 게시글 상세/작성
- 기능 플래그로 메뉴가 사라지는 상태, 정렬 활성 컬럼, 엑셀 다운로드 진행
- 필터 결과 0건 빈 상태(캠페인 외 전 목록)

### P3 — 마감·엣지

- 비회원 캠페인 목록(현재 orphan 라우트)
- 페널티 정책 편집 화면(현재 unrouted)
- 접속 제출자료 이용월 선택·다운로드 피드백
- 순서 변경 모드(공지·FAQ·게시판·브랜드)
- 결제 대기 캠페인 삭제 확인, 출석 선물상자 상세 다이얼로그
- 샵바이 연결 완료 콜백 화면

---

## 9. 목표 화면 트리

`[MISSING]` = 설계 없음 · `[PARTIAL]` = 있으나 불완전 · 표기 없음 = 설계됨

```
Admin
├── 로그인 [MISSING]
├── 대시보드 [PARTIAL]
│   ├── 처리 대기 큐
│   ├── 운영 정보 (추이 차트 3)
│   ├── 개요 KPI
│   └── 애널리틱스 도넛 6 [MISSING]
├── 캠페인 관리
│   ├── 캠페인 목록 [PARTIAL]
│   │   ├── 캠페인 필터 모달 [MISSING]
│   │   └── 페이지네이션 · 선택 · 일괄 액션 [MISSING]
│   ├── 캠페인 상세 [PARTIAL]
│   │   ├── 캠페인 정보 · 상품 정보
│   │   ├── 상태 변경 · 진행 스텝퍼 [MISSING]
│   │   ├── 신청자 목록 탭 [MISSING]
│   │   ├── 선정된 리뷰어 탭 [MISSING]
│   │   ├── 배송 관리 탭 [MISSING]
│   │   ├── 영상 검수 요청 탭 [MISSING]
│   │   ├── 예약 관리 탭 [MISSING]
│   │   └── 취소 · 강제 완료 · 복사 다이얼로그 [MISSING]
│   ├── 캠페인 등록/수정 [PARTIAL]
│   │   ├── 상품 찾기 모달 [MISSING]
│   │   ├── 스타트뷰몰 파트너 등록 모달 [MISSING]
│   │   └── 맞춤형 리뷰 가이드 모달 [MISSING]
│   ├── 캠페인 등록 대기 [PARTIAL] → 검토 화면 [MISSING]
│   ├── 결제 대기 캠페인 [PARTIAL]
│   ├── 예약 관리 [PARTIAL] → 승인 · 반려 · 취소 [MISSING]
│   ├── 영상 검수 [PARTIAL] → 승인 · 수정 요청 · 영상 매칭 [MISSING]
│   ├── 상품 목록 [PARTIAL]
│   │   ├── 상품 상세 [MISSING]
│   │   └── 상품 등록/수정 + 미리보기 [MISSING]
│   ├── 비회원 상품 목록
│   ├── 비회원 캠페인 목록 [MISSING]
│   └── 성과 보고서 관리 [PARTIAL] → 보고서 문서 [MISSING]
├── 문의 관리 [PARTIAL]
│   ├── 1:1문의 탭 [PARTIAL] → 문의 상세 · 답변 [MISSING]
│   ├── 광고문의 탭 [MISSING] → 상세 · 메모 [MISSING]
│   └── 비즈니스 상담 탭 [MISSING] → 상세 · 메모 [MISSING]
├── 크리에이터 관리
│   ├── 크리에이터 목록 [PARTIAL]
│   │   ├── 리뷰어 필터 모달 [MISSING]
│   │   ├── 회원 상세 [MISSING]
│   │   │   ├── 기본 정보 · 채널 · 소속 기업
│   │   │   ├── 포인트 증감 · 페널티 · 로그 · 참여 캠페인
│   │   │   └── 상태 변경 · 포인트 조정 · 페널티 · 발송
│   │   └── 회원 정보 수정 [MISSING]
│   ├── 크리에이터 신청 이력 [PARTIAL] → 상세 드로어 · 리뷰어 분석 [MISSING]
│   ├── 월별 지급 건 [PARTIAL] → 상태 탭 · 완료/실패 기록 [MISSING]
│   ├── 포인트 정산 신청 [MISSING]
│   └── 출석이벤트 현황 [PARTIAL] → 기간 필터 · 상세 [MISSING]
├── 브랜드 존 관리
│   ├── 브랜드 목록 [PARTIAL] → 브랜드 등록/수정 [MISSING]
│   ├── 수요조사 목록 [MISSING]
│   │   ├── 수요조사 상세 [MISSING]
│   │   ├── 수요조사 등록/수정 [MISSING]
│   │   └── 제안 목록 → 제안 상세 [MISSING]
│   ├── 수요 DB [MISSING]
│   ├── 결제 승인 [PARTIAL] → 결제 상세 [MISSING]
│   ├── 협업 검수 [PARTIAL] → 승인 · 수정 요청 [MISSING]
│   └── 협업 정산 [PARTIAL] → 정산 메모 · 결과 [MISSING]
├── 공동구매 관리 [MISSING]
│   ├── 개설 검수 [MISSING]
│   └── 영상 검수 [MISSING]
├── 어필리에이트 관리 [MISSING]
│   ├── 개설 검수 [MISSING]
│   └── 지급 대상 확인 [MISSING]
├── 결제 관리
│   ├── 무통장 입금 충전 요청 [PARTIAL] → 입금 확인 · 요청 취소 [MISSING]
│   ├── 무통장 입금 환불 요청 [PARTIAL] → 환불 완료 · 반려 [MISSING]
│   ├── 캠페인 결제 내역 [PARTIAL] → 환불 처리 모달 [MISSING]
│   └── 무통장 입금 계좌 관리
├── 광고주 관리
│   ├── 기업 관리 [PARTIAL]
│   │   ├── 기업 상세 (2탭 · 5목록) [MISSING]
│   │   ├── 기업 정보 수정 [MISSING]
│   │   └── 기업 등록 · 필터 모달 [MISSING]
│   ├── 광고주 관리 [PARTIAL] → 광고주 상세 [MISSING]
│   └── 접속 제출자료 [PARTIAL]
├── 커뮤니티 관리
│   ├── 커뮤니티 관리 [PARTIAL]
│   │   ├── 게시판 상세 [MISSING]
│   │   ├── 게시판 등록/수정 [MISSING]
│   │   └── 게시글 작성/수정 + 미리보기 [MISSING]
│   ├── 발행 예정 게시글 [PARTIAL]
│   └── 비활성 게시글 [MISSING]
├── 고객센터 관리
│   ├── 공지사항 [PARTIAL] → 상세 · 등록/수정 [MISSING]
│   ├── FAQ [PARTIAL] → 상세 · 등록/수정 [MISSING]
│   ├── 이용 가이드 [PARTIAL] → 게시글 상세 · 작성 [MISSING]
│   └── 요금제 [PARTIAL] → 게시글 상세 · 작성 [MISSING]
├── 관리자 관리 [MISSING] (SUPER_ADMIN)
│   ├── 관리자 목록 + 등록 모달 [MISSING]
│   └── 관리자 상세 + 로그 [MISSING]
├── 프롬프트 관리 [MISSING] (SUPER_ADMIN)
├── 사이트 설정
│   ├── 배너 관리 → 배너 등록/수정 [MISSING]
│   ├── 푸터 관리 · 약관 관리 · SEO 관리
│   └── 페널티 정책 [MISSING]
└── 계정
    ├── 내 프로필
    ├── 알림
    └── 로그아웃
```

---

## 10. 다음에 설계할 것

P0 10건 중 2건은 화면이 아니라 패턴이고, 이것을 먼저 설계하면 나머지 8건이 싸진다 — 미커버 101개 중 약 60개가 6개 반복 패턴의 인스턴스다.

1. **배치 1 — 테이블 계약.** 페이지네이션 + 건수, 행 선택, 일괄 액션 바, 상태 세그먼트, 필터 모달 + 적용 필터 칩, 컬럼 정렬. 기존 26개 목록에 소급 적용.
2. **배치 2 — 다이얼로그 계약.** 확인, 사유 입력(반려/취소), 값 입력 실행(포인트·캐시·환불), 읽기 전용 컨텍스트 드로어, 그리고 loading / error+retry / success toast / validation 상태.
3. **배치 3 — 엔터티 상세 템플릿.** 회원 상세·기업 상세로 검증 후 상품·문의·게시판에 적용.
4. **배치 4 — 캠페인 상세 운영 탭 5종.** 제품에서 가장 깊은 단일 워크플로.
5. **배치 5 — 브랜드 존의 빠진 절반.** 수요조사 5화면 + 수요 DB.
6. **배치 6 — 돈이 움직이는 화면.** 지급/정산 상태 탭과 기록 모달, 결제 조치 다이얼로그, 결제 상세.
7. **배치 7 — 콘텐츠 저작.** 게시글 에디터 + 미리보기, 공지/FAQ 작성, 브랜드 등록.
8. **배치 8 — 나머지 모듈.** 문의 3탭, 관리자 관리, 로그인, 프롬프트, 공동구매·어필리에이트.

---

**집계에 대한 단서.** 서피스 수는 Angular 소스의 라우트·탭 정의·다이얼로그 호출 지점에서 읽었다. 일부 하위 탭과 확인 다이얼로그를 하나로 볼지 여럿으로 볼지는 판단이 들어갔다. 분류는 안정적이고, 총계는 ±5다.
