---
task_id: task-1956
type: plan
scope: task
created: 2026-04-19
updated: 2026-04-19
status: completed
---

# 계획서: task-1956 — 인슈로 Phase 1 기반 안정화 전체 구현

**task**: task-1956
**목표**: 인슈로 Phase 1 기반 안정화 11개 항목 구현 (타입 보완, 월 필터 동적화, AI 호출 통일, CORS 프록시, CTA 실동작, 온보딩 기반, as any 정리, 스텁 해소, 스모크 테스트)
**승인**: 아누 2026-04-19
**근거**: memory/plans/insuro-system/plan.md Phase 1 정의, memory/research/insuro-page-audit.md 전수조사

---

## 목표

- tsc/pyright 타입 에러 0건 (M1 → M6 연쇄)
- `as any` 신규 추가 0건 + 기존 불필요 캐스트 제거
- Naver API CORS 문제 해소 (서버 프록시)
- AI 호출 CLI 통일 (subprocess만, API 직접 호출 금지)
- 30개 라우트 스모크 테스트 스위트 구축

## 범위

### 포함
- M1: Supabase 5개 테이블 타입 보완 (plan_token_config, feature_token_costs, user_tokens, token_usage_log, plan_ai_models)
- M2: 월 필터 동적화 (MarketNewsletter.tsx, PremiumComparison.tsx)
- M3: AI 호출 방식 통일 (anu_provider.py → CLI subprocess)
- M4: Naver API CORS 프록시 (server/main.py 프록시 엔드포인트 + KeywordAnalysis.tsx 리팩토링)
- M6: `as any` 캐스트 정리 (M1 이후)
- H6: DigitalNamecard 상담 CTA 실동작
- H7: /api/ai/generate 스텁 해소 (M3 이후)
- OB-2: Dashboard Empty State → 온보딩 진입
- OB-3: onboarding_step ENUM 컬럼 추가
- OB-1: 온보딩 위자드 3단계 UI
- T1: 30개 라우트 스모크 테스트

### 제외 (Phase 2 이후)
- premiumOnly 디자인 관련 수정
- Stripe 결제 연동
- 인포키워드/인슈위키 기능
- PostHog 분석 인프라

## 위임 계획

### 병렬 Wave 1 (독립 작업)
- M1 (types.ts 타입 보완): **스바로그(백엔드)** — DB 스키마 기반 타입 정의
- M2 (월 필터 동적화): **라다(프론트엔드)** — UI 동적 쿼리
- M3 (AI 호출 통일): **스바로그(백엔드)** — anu_provider.py 리팩토링
- M4 (CORS 프록시): **스바로그(백엔드)** — server/main.py 프록시 엔드포인트
- H6 (CTA 실동작): **라다(프론트엔드)** — DigitalNamecard.tsx 수정
- OB-2 (Empty State 제거): **라다(프론트엔드)** — Dashboard.tsx 수정
- OB-3 (ENUM 컬럼): **스바로그(백엔드)** — SQL 마이그레이션

### 순차 Wave 2 (의존성 있음)
- M6 (as any 정리): **라다(프론트엔드)** — M1 완료 후
- H7 (generate 스텁 해소): **스바로그(백엔드)** — M3 완료 후

### Wave 3
- OB-1 (온보딩 위자드 UI): **라다(프론트엔드)** — OB-2 이후
- T1 (스모크 테스트): **벨레스(테스터)** — 전체 구현 완료 후

## 검증 기준

- G1-1: `npx tsc --noEmit` → 에러 0건
- G1-2: `grep -rn "as any" src/ --include="*.ts" --include="*.tsx" | wc -l` → 기존 대비 감소, 신규 추가 0건
- G1-3: `curl http://localhost:8000/api/insuro/naver/search` → 200 응답
- G1-4: 30개 라우트 스모크 테스트 → 전수 PASS
