---
task_id: task-1960
type: context
scope: task
created: 2026-04-19
updated: 2026-04-19
status: completed
---

# 맥락 노트: task-1960

**task**: task-1960

---

## 결정 근거

### 3 Step Why 자문

**1st Why**: "왜 이 설계가 필요한가?"
→ D(인슈위키)→B(인포키워드)→A(콘텐츠 생성) 3단계를 수동으로 연결하면 사용자가 각 단계를 직접 실행하고 중간 결과를 수동 전달해야 해 UX가 번거로움. 원클릭 파이프라인이 필요.

**2nd Why**: "왜 파이프라인 오케스트레이터 + Pydantic 스키마 계약이 최선인가?"
→ 각 단계 간 입출력을 Pydantic으로 타입 검증하면 단계 간 데이터 불일치를 방지. BackgroundTasks + 상태 관리로 비동기 실행 가능.

**3rd Why**: "왜 인메모리 MVP가 DB 기반보다 나은가 (현 시점)?"
→ 현재 키워드 분석도 인메모리(_keyword_jobs). 파이프라인 MVP는 기존 패턴과 일관성 유지하면서 빠른 검증 가능. DB 이관은 PL-2 태스크에서 수행.

### MVP 범위 결정
- C(배포) 단계 자동화 제외: 외부 API 연동(Threads, 티스토리, 네이버) 미완성
- Supabase Realtime 대신 5s 폴링: MVP에서 충분, 추후 PL-5에서 Realtime 전환
- 히든 플랜 전용: require_plan("히든")으로 접근 제한 — 가족 전용 기능

## 참조 자료

- insuro-system plan.md: `memory/plans/insuro-system/plan.md` Phase 4 C7 항목
- insuro-system checklist.md: `memory/plans/insuro-system/checklist.md` PL-1~PL-7 항목
- 기존 키워드 분석 패턴: `server/main.py:587-639` (_keyword_jobs 인메모리 잡)

## 주의사항

- premiumOnly 미완성 디자인 절대 건드리지 말 것 (task 지시)
- API 직접 호출 금지 — CLI만 사용 (task 지시)
- C 자동 배포는 MVP에서 제외 — "미리보기 후 수동 발행" (task 지시)
