---
task_id: task-1969
type: plan
scope: task
created: 2026-04-20
updated: 2026-04-20
status: completed
---

# 계획서: task-1969

**task**: task-1969
**목표**: 전수조사 적발 16건 + Gemini PR 리뷰 지적 7건 중 선별 13건 일괄 수정
**승인**: 아누 2026-04-20 "전수조사 적발+Gemini 지적 일괄 수정"
**근거**: memory/reports/task-1967+1.md, memory/reports/task-1968.md

---

## 목표

인슈로 전수조사 적발 16건 + Gemini PR 리뷰 지적 7건 중 실제 수정 대상 13건을 일괄 수정하여 코드 품질/보안/성능을 향상시킨다.

## 범위

### 포함
- Phase A: task-1962-dev1 브랜치 main 머지 (CR-3,4,5 해결)
- Phase B: Gemini PR 리뷰 지적 7건 (Naver API 키, subprocess 비동기, 인메모리→DB, 맥스플랜 필터, AsyncClient 재사용, 랭킹 DB 집계, N+1 쿼리)
- Phase C: 전수조사 WARNING 선별 5건 (Dashboard.tsx 정리, as any 타입수정, 채널제한 UI, 무료 카운트다운, 감사로그)
- Phase D: CRITICAL C6 OAuth 토큰 암호화

### 제외 (별도 task)
- M3 subprocess→API 전환 (대규모 리팩토링)
- C3 네이버 AI원스탑 (의도된 "출시 예정")
- C7 파이프라인 시뮬레이션 (MVP 의도)
- D3 위키 랭킹 프론트, CP-1 경쟁사 비교, T3 E2E 테스트

## 위임 계획

- Phase A (브랜치 머지): **팀장** — git 작업이므로 직접 수행
- Phase B-1,2,3,4 (백엔드 보안/성능): **불칸(백엔드)** — Naver API 키, subprocess, 인메모리→DB, 맥스플랜 필터
- Phase B-5,6,7 (백엔드 최적화): **불칸(백엔드)** — AsyncClient, 랭킹 DB, N+1 쿼리
- Phase C-1 (Dashboard.tsx 정리): **이리스(프론트)** — 고아 파일 삭제
- Phase C-2 (as any 타입수정): **이리스(프론트)** — Settings.tsx 타입 정리
- Phase C-3 (채널제한 UI): **이리스(프론트)** — 사전 안내 UI 추가
- Phase C-4 (무료 카운트다운): **이리스(프론트)** — DB 실제 사용량 조회
- Phase C-5 (감사로그): **불칸(백엔드)** — Python 서버 AI 호출 로깅
- Phase D (OAuth 암호화): **불칸(백엔드)** — Fernet 암호화 구현

## 검증 기준

- tsc 0 errors: `npx tsc --noEmit` → 0 errors
- pytest PASS: `cd server && python -m pytest` → all PASS
- Naver API 키 제거: `grep -n "naver_client_id\|naver_client_secret" server/main.py` → NaverSearchRequest에 없음
- subprocess 비동기: `grep -n "subprocess.run" server/anu_provider.py` → 0건
- 맥스 플랜 필터: `grep -n "plan_name\|plan_id" server/main.py` 잔여석 로직 내 → 플랜 필터 존재
- OAuth 암호화: `grep -rn "Fernet\|encrypt\|decrypt" server/` → 존재
