๐ Citation Moat โ LLM ์ธ์ฉ ์์ง ํ์ดํ๋ผ์ธ ์ค๊ณ v1.0
# Citation Moat โ LLM ์ธ์ฉ ์์ง ํ์ดํ๋ผ์ธ ์ค๊ณ ## ์ต์ข
์
๋ฐ์ดํธ: 2026-02-21 KST | v1.1 (ํ
์คํธ ๊ฒฐ๊ณผ ๋ฐ์) ๊ด๋ จ๋ฌธ์: khub_get_document("7b1a579a") โ Citation Moat ์ ๋ต ๋ณธ๋ฌธ --- ## 1. 2ํธ๋ ์
ํต์ฌ ์์ฝ
# Citation Moat โ LLM ์ธ์ฉ ์์ง ํ์ดํ๋ผ์ธ ์ค๊ณ
์ต์ข ์ ๋ฐ์ดํธ: 2026-02-21 KST | v1.1 (ํ ์คํธ ๊ฒฐ๊ณผ ๋ฐ์)
๊ด๋ จ๋ฌธ์: khub_get_document("7b1a579a") โ Citation Moat ์ ๋ต ๋ณธ๋ฌธ
---
1. 2ํธ๋ ์ํคํ ์ฒ
ํธ๋ 1: LLM API ์ง์ ํธ์ถ
| ์์ | LLM | ์ธ์ฉ ํ๋ | ์ํ | ํ ์คํธ |
|---|---|---|---|---|
| 1 | Perplexity sonar | citations[] | โ ์ด์์ค | 1559๊ฑด ์์ง |
| 2 | OpenAI search-preview | annotations[].url_citation | โ ๊ฒ์ฆ์๋ฃ | ์์ด10๊ฑด/ํ๊ตญ์ด0~3๊ฑด |
| 3 | Gemini google_search | groundingSupports[] | โณ n8n ๊ตฌํ ๋๊ธฐ | ์ปจํ ์ด๋ 403 |
| 4 | Grok x_search | context[]+citations[] | โณ n8n ๊ตฌํ ๋๊ธฐ | ์ปจํ ์ด๋ CF1010 |
| 5 | Claude web_search | web_search_tool_result | ๐ข ๋ฎ์ | - |
ํธ๋ 2: SERP ์คํฌ๋ํ (BrightData)
| ๋์ | ํ๋ผ๋ฏธํฐ | ์ํ |
|---|---|---|
| Google AI Overview | brd_ai_overview=2, brd_json=1 | โณ APIํค ํ์ |
| Google AI Mode | SerpApi google_ai_mode ์์ง | โณ |
| ๋ค์ด๋ฒ Cue: | BrightData Naver SERP โ DOM ํ์ฑ | โณ APIํค ํ์ |
| ๋ค์ด๋ฒ ์ค๋งํธ๋ธ๋ก | BrightData Naver SERP | โณ APIํค ํ์ |
---
2. OpenAI url_citation ๊ฒ์ฆ ๊ฒฐ๊ณผ (2026-02-21 ์ค์ธก)
์๋ต ๊ตฌ์กฐ
{
"choices": [{
"message": {
"content": "๋ต๋ณ ํ
์คํธ...",
"annotations": [{
"type": "url_citation",
"url_citation": {
"start_index": 49, "end_index": 260,
"title": "์ถ์ฒ ์ ๋ชฉ",
"url": "https://..."
}
}]
}
}]
}
ํ ์คํธ ๊ฒฐ๊ณผ
- ๋ชจ๋ธ: gpt-4o-mini-search-preview-2025-03-11
- ์์ด ์ฟผ๋ฆฌ โ 10๊ฐ citations (์น์ฌ์ดํธ URL + Google Maps)
- ํ๊ตญ์ด ์ฟผ๋ฆฌ โ 0~3๊ฐ citations (์ฃผ๋ก Google Maps ๋งํฌ)
- start_index/end_index๋ก ๋ณธ๋ฌธ ๋ด ์ธ์ฉ ์์น ์ ํ ๋งคํ
- ๋น์ฉ: ~$0.001/query (๋งค์ฐ ์ ๋ ด)
llm_model ์ฝ๋: openai_search
---
3. ๊ธฐ์กด ์ธํ๋ผ ํํฉ
ํ ์ด๋ธ (bawee Supabase)
- gp_geoex_source_queries: 173๊ฐ ํ์ฑ, 14๊ฐ ๊ณ ๊ฐ์ฌ
- gp_geoex_source_citations: 1,619๊ฑด (sonar 1559 + gemini/gpt-4o/perplexity ๊ฐ 20)
- gp_geoex_source_domains, source_share, v_geoex_source_share_daily
์คํค๋ง ํ์ฅ ํ์
ALTER TABLE gp_geoex_source_queries
ADD COLUMN IF NOT EXISTS target_engines text[] DEFAULT '{"sonar"}',
ADD COLUMN IF NOT EXISTS query_language text DEFAULT 'ko';
llm_model ํ์ค๊ฐ
sonar | openai_search | gemini_grounding | grok_search | claude_search | google_aio | google_aim | naver_cue | naver_smartblock
---
4. BrightData SERP API ์ ์ ํ์
ํ์ฌ ๋ณด์
- Residential Proxy: brd.superproxy.io:33335 (zone: residential_proxy_geo_commerce)
- MCP ์ปค๋ฅํฐ: BrightData MCP (Claude.ai ์ฐ๊ฒฐ)
์ถ๊ฐ ํ์
- BrightData ๋์๋ณด๋ โ SERP API zone ์์ฑ
- API Key ๋ฐ๊ธ โ gp_admin_secrets์
BRIGHTDATA_SERP_API_KEY๋ฑ๋ก - ๋ค์ด๋ฒ SERP + ๊ตฌ๊ธ AI Overview ํ ์คํธ
---
5. ๊ตฌํ ๋ก๋๋งต
Phase 1A (์ฆ์ โ API ํค ์์)
- [x] OpenAI search-preview ์ธ์ฉ ๊ตฌ์กฐ ๊ฒ์ฆ โ
- [ ] OpenAI ํ์ดํ๋ผ์ธ n8n WF ์์ฑ
- [ ] target_engines ์ปฌ๋ผ ์ถ๊ฐ
- [ ] ๊ธฐ์กด ์ฟผ๋ฆฌ 5๊ฐ๋ก OpenAI ํ์ผ๋ฟ ์คํ
Phase 1B (BrightData ์ ์ ํ)
- [ ] SERP API zone + API key
- [ ] ๋ค์ด๋ฒ SERP โ Cue: ์์ญ ๊ฐ์ง ํ ์คํธ
- [ ] ๊ตฌ๊ธ AI Overview brd_ai_overview=2 ํ ์คํธ
Phase 2 (๋จ๊ธฐ)
- [ ] Gemini grounding + Grok x_search n8n WF
- [ ] ํตํฉ ์ค์ผ์ค๋ฌ (์ผ๋ณ)
Phase 3 (์ค๊ธฐ)
- [ ] ๊ต์ฐจ ๋น๊ต ๋์๋ณด๋
- [ ] ์ธ์ฉ ๋ณํ ์๋ฆผ
์ ๋น์ฉ ์ถ์ : ~$10 (์ ์ฒด ์์ง)
---
*v1.1 | 2026-02-21 | project_code: PREMIUM_GEO*