---
task_id: task-2107
type: context
scope: task
created: 2026-04-22
updated: 2026-04-22
status: completed
---

# 맥락 노트: task-2107

**task**: task-2107

---

## 결정 근거

### 3 Step Why 자문

**1st Why: "왜 이 설계가 필요한가?"**
→ 현재 AI 키워드 분석 페이지가 3+1(하단 구글 트렌드 placeholder) 구조로 기능하지 않음. 사용자가 네이버 + 구글 양 플랫폼 검색 트렌드를 비교 분석할 수 없음.

**2nd Why: "왜 5탭 구조 + pytrends가 최선인가?"**
→ 5탭으로 분리하면 각 기능이 독립적 탭으로 정리됨. pytrends는 무료이며 Google Trends 데이터 반환에 충분. SerpAPI는 유료 API 키 필요.

**3rd Why: "왜 pytrends MVP가 SerpAPI 우선보다 나은가?"**
→ SerpAPI는 월 비용 발생 + API 키 관리 필요. pytrends는 비공식이나 단일 키워드 시계열 조회에 충분. rate limit만 관리(10/min)하면 됨. MVP에서 사용자 반응 확인 후 유료 전환이 합리적.

### 구글 트렌드 인증 정책
- verify_jwt만 적용 (플랜 제한 없음 — 로그인한 모든 사용자 사용 가능)
- Codex 리뷰에서 "인증/플랜 정책 명시 필요" 지적 → JWT 인증만으로 결정
- 이유: 구글 트렌드는 외부 무료 데이터, 플랜 차등화 불필요

### pytrends 비동기 래핑
- pytrends는 동기 라이브러리 → asyncio.to_thread로 비동기 래핑
- 서버 이벤트 루프 블로킹 방지

## 참조 자료

- Codex 사전 검증 결과: PASS (리스크 6건, critical 없음)
- 현재 탭 구조: `src/pages/KeywordAnalysis.tsx`
- 서버 엔드포인트: `server/main.py`

## 주의사항

- pytrends는 Google 비공식 API — 차단/응답 변경 리스크 존재
- rate limit 10/min으로 보수적 설정
- 향후 안정성 문제 시 SerpAPI로 전환 필요
