---
task_id: "task-1904+1"
type: context-notes
scope: "knowledge_extractor_v2.py 체크포인트 저장/복원"
status: completed
updated_at: "2026-04-16"
---

# 맥락 노트: 인슈위키 정제 파이프라인 체크포인트 저장

## 3 Step Why

### 1st Why: "왜 체크포인트 저장이 필요한가?"
스레드 분리 + LLM 정밀 분리 결과가 메모리에만 존재하여, 프로세스 중단 시 처음부터 재수행해야 한다. LLM 호출은 시간과 비용이 크므로 중복 실행은 낭비.

### 2nd Why: "왜 파일 기반 체크포인트가 최선인가?"
DB나 외부 스토리지 없이 output_dir에 JSON 파일로 저장하면 기존 인프라 변경 없이 즉시 적용 가능. ThreadV2가 Pydantic 모델이므로 model_dump()/생성자로 직렬화/역직렬화가 간단.

### 3rd Why: "왜 JSON 파일이 DB보다 나은가?"
이 파이프라인은 로컬 CLI 기반이며 동시 실행이 없다. 단일 프로세스에서 순차적으로 실행되므로 파일 잠금/트랜잭션이 불필요. JSON은 디버깅 시 직접 확인 가능하고 의존성이 없다.

## 결정 사항
- 체크포인트 파일 위치: output_dir 내 (checkpoint_threads.json, checkpoint_refined_threads.json)
- 정제 완료 후 체크포인트 삭제 안 함 (디버깅용 보존)
- 체크포인트 복원 순서: refined → threads (더 진행된 상태 우선)
