# Task: QC 개선안(task-234.1) InfoKeyword 프로젝트에 실제 적용

## Task ID: task-239.1

## 배경
2팀이 task-234.1에서 QC 프로세스 개선안을 설계하고 프레임워크 코드를 작성했다.
이 결과물을 InfoKeyword 프로젝트에 실제 적용하는 것이 이 작업의 목표.

## 2팀 산출물 위치 (참고만, 복사하지 말고 프로젝트에 맞게 구현)
- QC-RULES v2.0: `/home/jay/workspace/teams/shared/QC-RULES.md`
- schema_contract verifier: `/home/jay/workspace/teams/dev1/qc/verifiers/schema_contract.py`
- 테스트: `/home/jay/workspace/teams/dev1/qc/tests/test_schema_contract.py`
- 샘플 스키마: `/home/jay/workspace/teams/shared/schemas/keyword-data.schema.json`
- 미팅 기록: `/home/jay/workspace/memory/meetings/2026-03-04-qc-improvement.md`

## 구현 범위

### 1. Pydantic 모델 생성 (Worker 측)
- `/home/jay/projects/InfoKeyword/worker/models.py` 신규 생성
- 기존 Worker의 dict 반환값을 Pydantic 모델로 정의
- StepResult, KeywordResult, AnalysisResult 등
- 기존 Worker 동작에 영향 주지 않도록 주의 (모델은 검증/문서화 용도)

### 2. JSON Schema 자동 생성
- Pydantic 모델에서 JSON Schema export 설정
- `/home/jay/projects/InfoKeyword/shared/schemas/` 에 스키마 파일 저장
- Makefile 또는 스크립트로 `make export-schema` 명령 추가

### 3. 계약 테스트 (Python 측)
- Worker 출력이 Pydantic 모델과 일치하는지 검증하는 pytest
- `/home/jay/projects/InfoKeyword/worker/tests/test_contract.py`

### 4. TypeScript Zod 스키마 (Frontend 측, 선택)
- 시간이 허용되면 Zod 스키마 추가, 아니면 SKIP

## 주의사항
- **Worker의 기존 동작을 절대 깨뜨리지 말 것** — 모델은 검증 레이어로만 사용
- 기존 `analyzer.py`의 dict 반환 구조를 그대로 유지하면서, 모델로 validate만 추가
- `.git`이 없으므로 git 명령어 사용 금지
- `npm run build` 성공 확인 (프론트엔드 영향 없어야 함)

## 완료 후
1. pytest 전체 통과 확인
2. `npm run build` 성공 확인
3. 보고서: `/home/jay/workspace/memory/reports/task-239.1.md`