---
task_id: task-2136
type: checklist
scope: task
created: 2026-04-23
updated: 2026-04-23
status: in-progress
---

# 체크리스트: task-2136

**task**: task-2136

---

## Phase 1 — 백엔드 (루/Lugh)

- [x] A. BaseCollector 추상 클래스 (server/collectors/base.py)
- [x] B. FixedCollector (server/collectors/fixed.py) — trend_collector.py 래핑
- [x] C. NaverCollector (server/collectors/naver.py) — 네이버 검색광고 API
- [x] D. KeywordNormalizer (server/utils/normalizer.py)
- [x] E. NegativeFilter (server/utils/negative_filter.py)
- [x] F. config 파일 4종 (fixed_keywords.txt, synonyms.json, negative_words.json, keyword_config.yaml)
- [x] G. DB 마이그레이션 (003_keyword_hybrid.sql)
- [x] H. 스코어링 v1 (server/utils/scoring.py)
- [x] I. REST API 3개 엔드포인트 (main.py에 추가)

## Phase 2 — 프론트엔드 (브리짓/Brigid)

- [x] A. KeywordAnalysis.tsx에 "키워드 순위" 탭 추가
- [x] B. TOP 20 카드형 리스트 + Layer 컬러태그 + 신뢰도 3단계
- [x] C. 미등록 키워드 안내 UX
- [x] D. inactive 키워드 opacity 50% 처리

## Phase 3 — 테스트 (모리건/Morrigan)

- [x] A. Normalizer + NegativeFilter 단위 테스트 (14개)
- [x] B. 스코어링 단위 테스트 (8개)
- [x] C. NaverCollector _parse_count 테스트 (8개)

## 검증

- [x] 테스트 통과 확인 (30/30 PASS)
- [x] L1 스모크테스트 완료
- [ ] QC 검증 완료
- [ ] 최종 보고
