# 맥락노트: InsuRo 트렌드 인사이트

**status**: in-progress
**작성일**: 2026-04-30
**수정일**: 2026-04-30 (17사이클 미팅 반영)

---

## 1. 결정 근거

### 왜 "트렌드 인사이트"인가?
- 기존 "키워드 순위" = 30개 고정 키워드, 검색량만 표시 → 의미 없음
- 제이회장님 지시: "보험 관련 급상승/검색량/조회수가 높은 보험 관련 이슈를 찾아주는 게 좋겠다"
- Cycle 3에서 "글감 추천 엔진"으로 방향이 틀어졌으나 CEO 교정으로 원점 복귀
- 최종 방향: "보험 업계 전용 키워드 트렌드 분석" — 블랙키위+썸트렌드 벤치마킹 통합

### 왜 2,000개인가?
- SearchAd API 실측: 시드 5개 → 연관 3,798개 (중복 제거). 시드 30개 → 추정 1만~1.4만개
- DataLab API 한도: 일 1,000회 → 앵커+4개 = 500회 → 2,000개 모니터링 가능 (여유 50%)
- 150개(초기 안)는 롱테일 커버 불가. 2,000개면 대표+1차 연관 충분히 커버
- 비용 차이 0원 (150이든 2,000이든 무료 쿼터 내)

### 왜 DataLab + Blog API 조합인가?
- 블랙키위 벤치마킹: 핵심 가치 = **콘텐츠 포화지수** (검색량 ÷ 발행수)
- 포화지수 없이 검색량만 = 네이버 키워드 도구와 다를 바 없음 (로키 DA)
- DataLab = 검색 트렌드 (급상승 감지), Blog API = 블로그 발행수 (포화도 산출)
- 둘 다 네이버 공식 API, 무료, 크롤링 리스크 제로

### 왜 앵커 정규화인가? (로키 DA 제안)
- DataLab API는 배치당 5개 키워드를 **상대 비교**한 상대값(0~100) 반환
- 배치 A의 "60"과 배치 B의 "60"은 직접 비교 불가
- 해결: 모든 배치에 앵커 키워드 "보험" 고정 포함 → 앵커 기준 정규화
- "보험" 선택 이유: 월 검색량 100만+, 변동폭 ±10% 이내로 안정적

### 왜 기회도 가중치가 가장 높은가? (0.40)
- 블로거에게 가장 중요한 건 "글 쓰면 노출될 수 있는가"
- 검색량이 아무리 높아도 포화되면 노출 불가 → 기회도(100-포화)가 실질 가치
- 급상승(0.35)은 시의성, 이슈성(0.25)은 화제성 — 보조 지표

### 왜 "트렌드 인사이트"라는 이름인가?
- "보험 실검" — 네이버 실검과 혼동, 가벼운 느낌
- "키워드 트렌드" — 너무 일반적
- "트렌드 인사이트" — 분석적 느낌 + 기존 탭(검색량 조회, 구글 트렌드)과 톤 일관성

---

## 2. 기각된 대안

### 2-1. 150개 수동 시드 (Cycle 5 초기안)
- 기각 이유: 롱테일 급상승 감지 불가, API 비용 차이 없음
- 대체: 30개 시드 → SearchAd 자동 확장 → 2,000개

### 2-2. 글감 추천 엔진 (Cycle 3)
- 기각 이유: 제이회장님 교정 — "방향이 너무 틀어졌다"
- 핵심: 키워드 트렌드/급상승이 본질, 글감 추천은 부가가치

### 2-3. AI 키워드 예측 (Phase 1)
- 기각 이유: 환각 리스크 (로키 DA), 추가 비용, Phase 1 복잡도 증가
- 대체: 규칙 기반 급상승 감지만. LLM은 Phase 3

### 2-4. 블러 기반 플랜 차등 (Cycle 2)
- 기각 이유: "일부러 가리는" 부정적 UX (에이레네)
- 대체: 빈도 차등 (무료=주1회, 맥스=일1회)

### 2-5. 영향력 순위 (블랙키위 방식)
- 기각 이유: 크롤링 부하 큼, InsuRo 목적(키워드 발견→글쓰기)과 불일치 (로키 DA)

### 2-6. 네이버 크롤링 (연관검색어/자동완성)
- 기각 이유: 이용약관 위반 + 법적 리스크 (로키 DA), IP 차단 위험

---

## 3. 주의사항

### 3-1. DataLab 상대값은 절대값이 아님
- 배치 간 직접 비교 불가 → 반드시 앵커 정규화 적용
- 앵커 "보험"이 급변하면 정규화 기준 흔들림 → 연 1회 앵커 적정성 검토

### 3-2. SearchAd compIdx는 "광고" 경쟁도
- 블로그 콘텐츠 경쟁도와 다름
- Phase 1에서는 Blog API 발행수 기반 포화지수로 대체
- 진짜 블로그 경쟁도 = 크롤링 필요 → Phase 2 이후

### 3-3. 급상승 없는 날 대비
- 보험 키워드는 연예인/정치 키워드처럼 급변하지 않음
- TOP 20이 매일 같은 얼굴이면 "트렌드 인사이트"로서 가치 없음
- 대비: 급상승 가중치 60%로 역동성 확보 + "꾸준히 높은 키워드" 폴백

### 3-4. 안내 페이지 필수
- 제이회장님 지시: "해당 기능에 대한 안내가 충분히 이루어질 수 있도록"
- 사용자가 처음 보면 "이게 뭔데?"가 되면 안 됨
- 상단 안내 배너 + 지표 설명 팝오버 + 포화뱃지 설명 + 하단 활용법 3단계

### 3-5. 기존 기능 영향 없음
- trend_keywords 테이블 건드리지 않음 (별개 DB)
- "검색량 조회" 탭 변경 없음
- 인포키워드 API 연동 변경 없음

---

## 4. 3 Step Why

### 1st Why: 왜 트렌드 인사이트가 필요한가?
→ 기존 키워드 순위(30개 고정)는 의미 없고, 설계사가 "지금 어떤 키워드로 글을 써야 하는지" 데이터 기반으로 판단할 수단이 없다.

### 2nd Why: 왜 DataLab+Blog API+2,000개 키워드가 최선인가?
→ 네이버 공식 API만 사용(법적 안전), 비용 0원, 포화지수(블랙키위 핵심 가치) 구현 가능, 2,000개로 롱테일까지 커버, 자동 확장으로 관리 부담 최소화.

### 3rd Why: 왜 이 접근이 다른 대안보다 나은가?
→ 블랙키위(범용, Pull, 유료) / 썸트렌드(소셜, 유료) 대비: 보험 특화(Push형 자동 추천) + 글쓰기 원스탑 + 비용 0원. AI 예측(환각 리스크) 대비: 규칙 기반으로 신뢰성 확보.

A-B-C 일관성: ✅

---

## 5. 17사이클 미팅 추가 결정 (2026-04-30)

### 왜 2,000개 → 3,500개인가?
- SearchAd 실측: 보험 관련 키워드 중 월 100회 이상 = 2,815개
- 여유분 20%(버퍼) = 3,378개 ≒ 3,500개
- API 2개(2,000회/일) 확보로 한도 제약 해소

### 왜 API 2개인가?
- 제이회장님 결정: 2인 각각 1앱 등록 (약관 위반 아님)
- 동일 서비스의 쿼터 우회가 아닌, 용도별 분리 (서비스용/분석용)

### 왜 opt-out 자동 승인인가? (뉴스 키워드)
- 수동 승인 = 병목 → 아무도 안 하면 파이프라인 사장 (DA 지적)
- 블랙리스트 + SearchAd 검증 + 탐색 풀 전용 + 주 10개 상한으로 리스크 차단
- B2B 도구라 설계사는 "보험사기" 키워드에 거부감 없음

### 왜 래퍼 스크립트인가? (크론 통합)
- 시간 고정 크론은 선행 지연 시 후속 꼬임 (DA 지적)
- 래퍼 스크립트: 선행 완료 체크 + flock 이중실행 방지 + 단일 로그
- 기존 daily_ranking_calc.py의 check_prerequisites()와 이중 안전

### 기각된 대안 (17사이클)
- API 3개 이상 운용 → 약관 리스크 과다 (전원 배제)
- Blog Search → DataLab 대체 → 후행 지표라 급등 감지 불가 (전원 배제)
- LLM 키워드 예측 → 환각 리스크 (Phase 3 이후)
- Mecab 형태소 분석 → 정규식+도메인사전으로 충분, 의존성 제거 (다빈치)
- CV(변동계수) 기반 분류 → 보험 키워드에 부적합, 2조건 단순화 (로키)
