Pending Features (후속 SPEC 예고)
기준 BE v0.140.0 / FE v0.197.0 / SPEC #001~#180 (#009 결번) — 2026-08-12.
이 페이지는 아직 안 한 일만 담는다. 완료된 SPEC 의 상세는 구현 현황(권위 소스)과 Changelog 가 갖는다.
⚠️ 2026-08-05 전면 재작성: 종전 페이지는 완료 항목의 상세 로그가 누적돼 “예고” 페이지가 완료 기록의 사본이 되어 있었고(본문 기준일도 2026-06-11 스냅샷), 정작 잔여를 찾기 어려웠다. 완료 로그를 걷어내고 잔여만 남긴다.
함께 보기: Known Gaps(코드 대조로 검증한 누락) · Design Debt(시안 부채) · 워크스페이스
docs/planning/31-alignment-ledger.md(기획-코드 정합) ·docs/planning/product-review-2026-08.md(우선순위)
0. 베타 전 우선 (운영 준비) ⚠️
기능이 아니라 서비스를 운영할 수 있는 상태에 대한 항목이다. 24/7 무인 매장 재생 서비스인데 관측·복구 수단이 비어 있다.
| 항목 | 영역 | 비고 |
|---|---|---|
음원 Cache-Control 부여 + 파일 교체 시 새 key 발급 | BE | 캐시 헤더 유무가 대역폭 원가를 자릿수 단위로 바꾼다. 교체가 같은 key 덮어쓰기라 immutable 은 새 key 발급과 한 묶음 |
| 원가 실측 (egress·캐시 적중률·API 호출량·회선 품질) | 운영 | 베타 매장 1대로 1주. 가격표 검증의 전제 |
| Sentry (FE·BE) | 인프라 | 현재 에러 재현 근거가 남지 않는다 |
| 운영사 매장 재생 상태 뷰 | FE | 본사엔 있고 운영사엔 없다. #172 컴포넌트 재사용 |
| 매장 offline 알림 | BE+FE | 이메일 인프라(Azure ACS) 기존 활용. 영업시간이 있으면 정확도가 오른다 |
render.yaml(IaC) + DB 백업 복구 리허설 | 인프라 | 현재 대시보드 수기 설정 · 복구해본 적 없음 |
| 사용량 알림 임계치 (Vercel·Render·Azure·DB) | 인프라 | 과금·용량 사고 사전 감지 |
| e2e 시나리오 확대 (최소 3종) | 테스트 | 현재 happy-path 1개. ①본사 송출→점장 재생→ack→이력 ②점장 CS→운영자 응대 ③PL 변경→큐 반영 |
| #171 ↔ 큐 상호작용 한정 감사 | 검증 | 시간대별 스케줄링이 2026-07 감사가 다진 큐 재매핑·크로스페이드와 맞물리는 지점 미검증 |
근거·계산은 워크스페이스
docs/planning/40-cost-model.md·30-trd-architecture §8-4-0·§9-1.
1. 크로스 도메인
| 항목 | 영역 | 비고 |
|---|---|---|
영업시간(businessHours) 도메인 | BE+FE | 다섯 기능이 묶여 있다 — 재생 준수율 리포트(#172 FU-1) · 마감 안내/음악 · LLM 슬롯 회피 · offline 판정 정확도(문 닫음 vs 장애) · 야간 폴링 완화. 1~2 SPEC 규모로 회수가 가장 크다 |
| 오프라인 재생 / 서비스워커 | FE | 큐 프리페치 + 오프라인 배너(권고) vs 풀 PWA. 캐시는 원가 문제이기도 하므로 §0 과 함께 설계 |
| — | 완료(SPEC #180, 2026-08-12) — 점장 player 가 단기 티켓으로 백엔드에 직접 SSE 구독. 연결이 연속 90초 유지되면 폴링 60초 / 그 외 20초, 계측(signal_latency_ms) 적재. 잔여는 1주 실측 후 리드타임 튜닝(별도) | |
| 월 청구 근거 CSV | BE+FE | 수기 세금계산서 발급의 금액 산정 입력값. 현재 storeCount 가 status·폐점 무필터라 과청구 위험 |
| 신탁 곡 식별 메타 (ISRC·아티스트·단체 귀속) | BE+FE | 단체 협의 결과에 맞춰 설계 — 미리 추측해 만들지 않는다 (21-policy-music §6-4) |
play_log 3년 파기 배치 | BE | 현재 무기한 적재 |
| 음원 hard-purge 배치 (만료 blob + row 영구 삭제) | BE | 소프트 삭제만 존재 |
2. 운영사 백오피스 (OPERATOR)
| 항목 | 상태 | 비고 |
|---|---|---|
| 정산·협약 (ContractPlan·Invoice·TaxInvoice) | 스코프 제외 | 무료 MVP + 세금계산서 수기 발급. /billing nav·페이지는 SPEC #165 로 제거됨 |
LLM 자동멘트 (/settings/llm-ments) | placeholder | Hq 설정 필드만 존재 — 호출 인프라·가드레일·슬롯 분배 전부 미구현. 베타 포함 여부 결정 대기 |
시스템 정책 (/settings/system-policies) | placeholder | 설정 8탭 중 잔여 1 |
알림 설정 (/settings/notifications) | 부분 | TTS 연결 확인 smoke-test 만 존재. 알림 채널 자체가 미도입 |
| 장애 알림 · incident 도메인 | 미착수 | 매장 heartbeat 는 store_playback_status 로 존재(#172) — 알림·대응 화면이 없다 |
| 음원 메타 enrich (무드·BPM·태그·아티스트·커버) | 미착수 | Cyanite·AI 커버는 별 도메인(제외). 수기 컬럼은 자율 가능 |
| PL 상태 MISMATCH 배지 | 미착수 | 플랜 위반 경고(운영사·본사 편집 화면) · 활성 PL 전부 위반 시 기본 PL 자동 폴백 · 전용 reason PLAN_FILTERED. 큐 필터 자체는 ✅(#122·#169) |
| PDF 내보내기 (감사·통계) | 미착수 | CSV export 5종 패턴 미러 |
| 통계 기간 선택(FR-16.1) · PNG export | 미착수 | 핸드오프 대기 |
| 운영자 역할(권한 등급) | 미착수 | 현재 OPERATOR 단일 |
| 정산 완료 메모 기록 필드 | 미착수 | 21-policy-music §6-1 |
3. 본사 모드 (HQ_MANAGER)
| 항목 | 비고 |
|---|---|
| 매장 상태 전이 본사 위임 | 운영자 #037 패턴 미러 |
✅ SPEC #184 마감 — 매장 등록 시 동시 발급 + 사후 발급(POST /api/v1/hq/stores/{storeId}/managers) + audit HQ_STORE_MANAGER_ISSUED | |
| 점장 계정 관리 본사 위임 | 정지·복구·회수·비밀번호 재설정은 여전히 운영사 전용(운영자 #029 패턴 미러). 계정 설정 메일 재발송도 OPERATOR-only |
| 운영자용 점장 이메일 정정 endpoint | SPEC #184 §1-1 명시적 비포함(감사 AC-F2 잔여) — 권한·감사 설계가 별개 무게. #184 는 오타가 나는 원인을 없앴고 정정은 후속 |
| 매장 사후 소속 이동 endpoint | 감사 T5-1 잔여. #184 D7 은 프리셋 제거로 오지정을 막았을 뿐, 이미 잘못 등록된 매장을 옮길 수단은 없다 |
| 본사명 변경 | 본사 self-edit 금지 정책 — 운영자 소관으로 재분류 |
| CS 티켓 SLA | 첨부파일은 완료(BE PR #324·#325 · 4 채널 FE 배선 — 이미지 4종·PDF · 10MB 전 구간(4MB 초과는 백엔드 직접 업로드) · 티켓당 5개 · 운영자 INTERNAL/공유 가시성 구분 + 첨부 대상 선택). 남은 건 SLA(응답 기한·초과 경고)뿐 |
| 결제·구독 3화면 | 결제 도메인 도착 후 |
| LLM 자동멘트 (PRD Page 22) | 사이드바 disabled 유지 — 인프라 미구현 |
| 임퍼소네이션 편집 토글 | #055 F-* · #057 F1 |
| 재생 준수율 리포트 (#172 FU-1) | 영업시간 도메인 선행 |
| 송출 이력 BE bulk endpoint | 현재 클라 다중 호출 → 한 트랜잭션으로 (#089 F2) |
| 송출 이력 매장 단위 BE 페이지네이션 | 현재 페이지 내 그룹핑만 (#089 F3) |
4. 점장 모드 (STORE_MANAGER)
| 항목 | 비고 |
|---|---|
| 장애복구 전용 화면 (PRD Page 7) | 현재 홈 [재시작]·[다음]·dead-end CTA 만. 시안 troubleshoot.jsx 존재 |
환경점검 서버 device-check (FR-9.2) | 클라 best-effort 로 축소 — RAM/해상도/이력 서버 기록 없음 → 본사 “환경 위반 배지” 불가 |
온보딩 완료 플래그 BE 백드 (onboardingCompletedAt) | 현재 기기 localStorage. 저장소 차단 기기에서 매 진입 재노출(무한 루프는 fail-open 으로 차단됨) |
| 앨범 커버 이미지 | 현재 브랜드 그라데이션 placeholder |
| 큐 목록 · [이전] 버튼 복원 | SPEC #168 로 SHOW_HIDDEN_PLAYER_SECTIONS=false 임시 숨김. 코드·로직 보존 — 복원은 토글 1개 |
| 메인 트랙 stall 워치독 (재감사 D2) | 오버레이엔 있고 메인 음악 트랙엔 없다. 복구 액션·backoff 통합이 필요해 별도 SPEC 백로그 |
| 매장 정보 편집 | 정책상 read-only 유지(PRD Page 6) — 변경은 본사 문의(CS 경로 ✅) |
5. 디자인 시스템
| 항목 | 비고 |
|---|---|
Surface 11 layer (surface-store-hq.css) | 미작성 |
Surface 12 layer (surface-store.css) | 미작성 |
Table primitive (packages/ui) | 각 목록이 수기 테이블 |
| Storybook 카탈로그 확대 | 일부 atom 만 stories 보유 |
| Visual regression (Chromatic 등) | 미도입 |
시안 부채(전용 handoff 없이 idiom 미러로 구현한 화면)는 Design Debt 가 단일 소스다.
6. v1.1+ (정식 출시 후)
| 항목 |
|---|
| 사업자번호 체크섬 검증 |
Hq.billingMode (FRANCHISE 가맹 매장 직접결제 옵션) |
| Argon2id 비밀번호 해싱 |
| 매장 단위 임퍼소네이션 |
| 매장 원격 재시작 · 큐 강제 재계산·푸시 |
| all-device logout |
| 풀 notification 도메인 (per-item read · 다기기 동기화 · 이메일/푸시) |
| 실시간 audit (WebSocket/SSE) · audit 보존/아카이브 정책 |
| SSO · 다국어(i18n) |
| 매장 status 자동 전환 (90일 INACTIVE) |
7. 검토했으나 하지 않기로 한 것
재조사를 막기 위한 기록.
| 항목 | 사유 |
|---|---|
| 플랫폼 기본 재생목록(라이선스 음원 시드) | 라이선스·콘텐츠 비용 대비 불필요 — 무음 시 [고객지원 문의] CTA 로 충분 (2026-06-16 결정) |
| 온보딩 콘텐츠 셋업 go-live 게이트 | 강제 게이트 대신 운영 절차(운영사가 매장 go-live 전 PL 지정)로 처리 |
| 60분 비활동 idle 자동 로그아웃 | 일반 서비스 관례상 불필요. idle 강제는 임퍼소네이션 60분 한정 |
| REGION 송출 보류 | 뒤집힘 — SPEC #144 로 구현 완료(시/도 17 region + fan-out) |
| TRUST 플랜 No-Go(AI 단독) 시나리오 | 폐기 — TRUST 진행 확정(2026-08-05). 계약 전 실송출은 plan=AI 로 차단 (21-policy-music §11-0) |
References
- 각 SPEC
7. 다음 SPEC 미리보기섹션 - handoff
10/11/12-surface-*.md§4 (Page inventory) - 워크스페이스
docs/planning/31-alignment-ledger.md·40-cost-model.md·product-review-2026-08.md