---
task_id: task-2249
type: plan
scope: task
created: 2026-04-27
updated: 2026-04-27
status: in-progress
---

# 계획서: task-2249

**task**: task-2249
**목표**: InsuRo 고객 증권분석 Phase 2-1 — 납입잔여 계산 개선 + 미가입 담보 표시 + 원문보기
**승인**: 아누 2026-04-27 "Phase 2-1 dispatch"
**근거**: task-2249.md 작업 지시서

---

## 목표

1. 분석 기준일 기반 잔여 납입 기간을 정확히 계산하여 "X년 Y개월" 형식으로 표시
2. 표준 담보 리스트 전체를 카테고리별로 표시하고, 미가입 담보는 회색/비활성으로 표시
3. 업로드된 원본 PDF를 다시 볼 수 있는 "원문보기" 버튼 추가

## 범위

### 포함
- `server/policy_analyzer.py` — 납입잔여 계산 함수 추가
- `server/main.py` — 분석 결과에 납입잔여 정보 포함 + 파일 URL 반환 + 원문 제공 엔드포인트
- `src/pages/PolicyAnalysis.tsx` — 납입잔여 표시 개선 + 미가입 담보 표시 + 원문보기 버튼
- `src/config/defaultCoverages.ts` — 참조만 (수정 없음)

### 제외 (다음 페이즈 이후)
- Phase 2-2: 고객별 증권 관리 (CRM 연동 + 분석 히스토리)
- Phase 2-3: 합산 보장현황 고도화

## 위임 계획

- 서버 백엔드(납입잔여 계산 + 원문 엔드포인트): **루(Lugh)** — 백엔드 전담
- 프론트엔드(UI 개선 3종): **브리짓(Brigid)** — 프론트엔드 전담
- 브리짓 작업은 루 작업 완료 후 시작 (서버 응답 형식 의존)

## 검증 기준

- 납입잔여 계산: enrollment_date + total_payment_years vs base_date 계산 정확성
- 미가입 담보: defaultCoverages 전체 표시, 미가입은 "-" + 회색
- 원문보기: PDF URL 반환 + 새 탭 오픈
- 빌드: `npm run build` 성공
- 서버: Python syntax check 통과
