# task-2059: 카카오톡 정제 프로세스 "sleeping" 상태 분석 + 개선

## 현재 상황
카카오톡 정제 프로세스를 실행하면:
- PID: alive
- CPU: 0%
- MEM: 193.1MB
- 상태: **sleeping**
- 실시간 로그는 올라가고 있음 (LLM 정밀 분리 chunk 진행 중)
- 0/149 스레드 처리 표시

## 이상한 점
1. **CPU 0% + sleeping인데 로그는 올라감** → LLM API 호출 대기(I/O wait) 중이면 CPU 0%는 정상이지만 "sleeping"이 혼란을 줌
2. **0/149 스레드** — 배치가 진행 중인데 처리된 스레드가 0으로 표시
3. 배치 표시가 "배치 1/8"에서 "LLM 정밀 분리 중 (21~40/149)" 으로 변경됐는데, 배치 번호 없이 전체 표시로 바뀜

## ★ 먼저 읽을 파일
- `/home/jay/projects/insuwiki/scripts/kakao_knowledge/knowledge_extractor_v2.py` — _write_progress 함수, 진행률 계산 로직
- `/home/jay/workspace/dashboard/routes_get.py` — psutil CPU/MEM 조회 로직 (task-2058에서 추가됨)
- `/home/jay/workspace/dashboard/components/InsuWikiView.js` — 프론트 표시 로직

## 분석 + 개선 범위

### 1. "sleeping" 상태 표시 개선
- psutil의 `process.status()` → "sleeping"은 I/O wait 상태 (LLM API 응답 대기 시 정상)
- 사용자에게는 "API 응답 대기 중"으로 표시하는 것이 더 명확
- sleeping → "대기 중 (LLM 응답)", running → "처리 중" 으로 한국어 매핑

### 2. 처리된 스레드 카운트 수정
- 0/149가 계속 표시되는 원인 분석
- progress 파일에서 completedThreads 필드 확인
- 배치 내 완료 스레드가 전체 카운트에 반영되는지 확인

### 3. 진행률 표시 일관성
- "배치 1/8 — LLM 분석 중 (스레드 #1~#20)" → "LLM 정밀 분리 중 (21~40/149)"
- 이전 표시와 현재 표시가 일관성 있게 개선
- 현재 단계명 + 배치 번호 + 전체 대비 진행률이 한 줄에 보이도록

### 4. 폴링 간격 확인
- task-2058에서 폴링 간격을 단축하기로 했는데, 현재 "마지막 갱신: 1분 전"으로 개선됨
- 추가 단축 가능한지 확인 (5초 → 가능?)

## 완료 시그니처
- [grep] `대기 중\|API 응답\|sleeping.*매핑` @ 프론트 또는 API 코드
- 처리된 스레드 카운트가 정상 증가

## 검증 시나리오
1. 정제 실행 시 "sleeping" 대신 한국어 상태 표시
2. 스레드 카운트가 배치 진행에 따라 증가
3. 기존 기능 회귀 없음

## 레벨
- critical

## 프로젝트
- dev-system