---
task_id: task-2066
type: context
scope: task
created: 2026-04-21
updated: 2026-04-21
status: completed
---

# 맥락 노트: task-2066

**task**: task-2066

---

## 결정 근거

### 3 Step Why 자문 결과

**1st Why: "왜 이 설계가 필요한가?"**
→ 사용자(보험 설계사)에게 불필요한 API 키 입력을 요구하면 온보딩 이탈이 발생한다. Threads/Instagram 연동만 사용자 키가 필요하고 나머지는 서버에서 처리하므로, UI/가이드에서 불필요한 키 입력 경로를 제거해야 한다.

**2nd Why: "왜 A가 최선의 접근인가?"**
→ UI에서 네이버 키 입력 필드를 제거하고, ApiGuide에서 Gemini/네이버 안내를 삭제하며, KeywordAnalysis에서 서버 키 fallback으로 전환하는 것이 가장 직접적이고 사용자 마찰을 줄이는 접근이다. DB 스키마(user_naver_keys 테이블)는 유지하되 UI만 제거하여 기존 데이터 손실 없이 전환 가능.

**3rd Why: "왜 B가 다른 대안보다 나은가?"**
→ 대안 1: DB 테이블 자체를 삭제 → 마이그레이션 필요하고 롤백이 어려움. 대안 2: UI 숨기기만(display:none) → 코드 부채 누적. 현재 접근(UI 코드 완전 제거 + 서버 로직 개선)은 깔끔하고 가역적.

### KeywordAnalysis.tsx 네이버 키 전환
- 기존: 사용자 개인 네이버 키를 조회하여 서버에 전달
- 변경: 서버에 query만 전달, 서버가 자체 키로 처리
- 이유: 서버에 이미 NAVER_CLIENT_ID/SECRET 환경변수 존재 (task-2065에서 확인)

## 참조 자료

- task-2065 보고서: `memory/reports/task-2065.md` — API 키 전수 조사 결과
- task-2066 이전 보고서: `memory/reports/task-2066.md` — 가이드 sync 분석 결과
- 제이회장님 피드백: task-2069 지시서 내 핵심 원칙

## 주의사항

- user_naver_keys DB 테이블은 삭제하지 않음 (기존 데이터 보존)
- 서버의 naver/search API 엔드포인트는 naver_client_id/secret 필드가 body에 없으면 환경변수 키를 사용하도록 이미 구현되어 있음
- AdminGuide에서 guide_sections DB 레코드 수동 추가 필요 (SIDEBAR_MENU_URLS에 등록만으로는 가이드 내용 자동 생성 안 됨)
