๐Ÿ—บ๏ธ ํ”Œ๋žซํผ ์•„ํ‚คํ…์ฒ˜

22๊ฐœ ํŽ˜์ด์ง€ ยท 9๊ฐœ API ยท 3๊ณ„์ธต ์ธก์ • ์‹ ํ˜ธ ยท AXOS ์˜จํ†จ๋กœ์ง€ (22 ๋…ธ๋“œ / 27 ๊ด€๊ณ„)

Layer 1 ยท Frontend (22 ํŽ˜์ด์ง€ ยท ์ •์  HTML/JS) ๐Ÿ“Š ์ง„์ž… (3) index ยท analyzing ยท dashboard ๐Ÿ“ˆ ์ง„๋‹จ ๊ฒฐ๊ณผ (8 + ํ†ตํ•ฉ 1) overview/kpi/problems/comparison/... ๐Ÿ› ๏ธ ๊ธฐ๋Šฅ ํŽ˜์ด์ง€ (8) cep ยท rewrite ยท derive๐Ÿ†• ยท citation-test๐Ÿ†• ยท report๐Ÿ†• ยท proposal๐Ÿ†• ยท chatbot ยท admin ๐Ÿ“š ๋ฆฌ์†Œ์Šค (3) manual ยท architecture ยท ontology ๐Ÿ†• result-tabs.html โ€” 8๊ฐœ ์ง„๋‹จ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๋‹จ์ผ ํ†ตํ•ฉ ๋ทฐ (ํƒญ ์ „ํ™˜) overview ยท kpi ยท problems ยท comparison ยท solution ยท ontology ยท cep ยท rewrite Layer 2 ยท Logic (Vanilla JS Modules) โš™๏ธ kpi-config.js 10 KPI ยท ๊ฐ€์ค‘์น˜ ยท ํŽ˜๋„ํ‹ฐ ๐Ÿ”ง common.js Session ยท History ยท API ๐Ÿ“Š chart.js SVG ์ž์ฒด ๋ Œ๋” ๐ŸŽฏ ai_writing 5์‹ ํ˜ธ aiCitation ์ง์ ‘ ์‚ฐ์ถœ ๐ŸŒณ ontology graph 22 ๋…ธ๋“œ ยท 27 ๊ด€๊ณ„ Layer 3 ยท Backend API ยท 9 Vercel Serverless Functions ๐Ÿ” POST /api/analyze URL/content ยท 10 KPI ยท ์™ธ๋ถ€์ธก์ • ๐ŸŽ POST /api/recommend ์†”๋ฃจ์…˜ ์ถ”์ฒœ ๐Ÿ’ฌ POST /api/chat AI ์ƒ๋‹ด์‚ฌ ๐ŸŽฏ POST /api/cep-discover CEP 5๋‹จ๊ณ„ ๋ฐœ๊ตด ๐Ÿ†• /api/rewrite-content 90์  ์ž๋™ ์žฌ์ž‘์„ฑ (์ž๊ฐ€๊ฒ€์ฆ) ๐Ÿ†• /api/derive-30 30๊ฐœ ์งˆ๋ฌธํ˜• ํŒŒ์ƒ ์ž๋™ ์ƒ์„ฑ ๐Ÿ†• /api/citation-test 10๊ฐœ ๊ฐ€์ƒ ์งˆ๋ฌธ ์ธ์šฉ ๊ฒ€์ฆ ๐Ÿ†• /generate-report ๋‹จ์ผ HTML โค๏ธ /api/health ์ƒํƒœ์ ๊ฒ€ Layer 4 ยท AI ยท ์™ธ๋ถ€ ์ธก์ • ยท Storage ยท Hosting ๐Ÿค– Gemini 2.5 Flash @google/generative-ai env: GEMINI_API_KEY 10 KPI ์ง„๋‹จ + ๊ธ€์žฌ์ž‘์„ฑ + CEP ๋ฐœ๊ตด + ์ธ์šฉ์„ฑ ๊ฒ€์ฆ ๐ŸŒ ์™ธ๋ถ€ ์ธํ”„๋ผ ์ธก์ • robots.txt (7๋ด‡ ์ฐจ๋‹จ ๊ฒ€์ถœ) sitemap.xml (URL ยท lastmod) ์ƒ‰์ธ ํœด๋ฆฌ์Šคํ‹ฑ ๋ฐฑ๋งํฌ ํœด๋ฆฌ์Šคํ‹ฑ ๐Ÿ’พ Storage localStorage ์ง„๋‹จ ์ด๋ ฅ ์ €์žฅ sessionStorage ํ˜„์žฌ ์ง„๋‹จ ๊ฒฐ๊ณผ ๐Ÿš€ Vercel Production hosting Edge Runtime Serverless API

๐Ÿ”Œ API ์—”๋“œํฌ์ธํŠธ (์ด 9๊ฐœ)

๊ธฐ์กด 4 + ์‹ ๊ทœ 4 + ํ—ฌ์Šค์ฒดํฌ 1

๐Ÿ” POST /api/analyze core

URL ๋˜๋Š” content ๋ชจ๋“œ๋ฅผ ๋ฐ›์•„ ์ƒˆ 10 KPI๋ฅผ ์‚ฐ์ถœ. ์™ธ๋ถ€ ์ธํ”„๋ผ ์ธก์ •(robots/sitemap/์ƒ‰์ธ/๋ฐฑ๋งํฌ) ํฌํ•จ.

๐ŸŽ POST /api/recommend

์ง„๋‹จ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ 6๋‹จ๊ณ„ ๋“ฑ๊ธ‰์— ๋งคํ•‘๋œ ์†”๋ฃจ์…˜ยท์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฐ˜ํ™˜.

๐Ÿ’ฌ POST /api/chat

๋„๋ฉ”์ธ RAG ๊ธฐ๋ฐ˜ AI ์ƒ๋‹ด์‚ฌ. ์ง„๋‹จ ๊ฒฐ๊ณผ๋ฅผ ์ปจํ…์ŠคํŠธ๋กœ ๋‹ต๋ณ€.

๐ŸŽฏ POST /api/cep-discover

CEP(Customer Entry Point) 5๋‹จ๊ณ„ ๋ฐœ๊ตด โ€” ์นดํ…Œ๊ณ ๋ฆฌ ์ง„์ž… ์ˆœ๊ฐ„์„ ์ž๋™ ์ถ”์ถœ.

โœจ POST /api/rewrite-content NEW

์ž…๋ ฅ ์ฝ˜ํ…์ธ ๋ฅผ 90์  ์ด์ƒ๊นŒ์ง€ ์ž๋™ ์žฌ์ž‘์„ฑ. ์ž๊ฐ€ ๊ฒ€์ฆ ๋ฃจํ”„(์ตœ๋Œ€ 3ํšŒ) ๋™์ž‘.

๐ŸŒณ POST /api/derive-30 NEW

ํ•ต์‹ฌ ์ฃผ์ œ์—์„œ 30๊ฐœ ์งˆ๋ฌธํ˜• ํŒŒ์ƒ ์ฝ˜ํ…์ธ  ํŠธ๋ฆฌ๋ฅผ ์ž๋™ ์ƒ์„ฑ.

๐Ÿ” POST /api/citation-test NEW

AI ์ธ์šฉ์„ฑ ์‹ค์ œ ๊ฒ€์ฆ โ€” 10๊ฐœ ๊ฐ€์ƒ ์งˆ๋ฌธ์œผ๋กœ ์ธ์šฉ ๋นˆ๋„/์œ„์น˜ ์ธก์ •.

๐Ÿ“‹ POST /api/generate-report NEW

์˜์—…์šฉ ๋‹จ์ผ HTML ๋ฆฌํฌํŠธ ์ƒ์„ฑ โ€” ์ง„๋‹จยทCEPยท์žฌ์ž‘์„ฑยทํŒŒ์ƒ ๊ฒฐ๊ณผ ํ†ตํ•ฉ.

โค๏ธ GET /api/health

์„œ๋ฒ„ ์ƒํƒœยทํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ๊ฒ€.

๐Ÿ“„ ํŽ˜์ด์ง€ ๊ตฌ์„ฑ (์ด 22๊ฐœ)

์ง„์ž… 3 ยท ์ง„๋‹จ ๊ฒฐ๊ณผ 8(+1 ํ†ตํ•ฉ) ยท ๊ธฐ๋Šฅ 8 ยท ๋ฆฌ์†Œ์Šค 3

๐Ÿšช ์ง„์ž… (3)

index.html ยท analyzing.html ยท dashboard.html

๐Ÿ“ˆ ์ง„๋‹จ ๊ฒฐ๊ณผ ๋‹จ๋… (8)

result-overview ยท result-kpi ยท result-problems ยท result-comparison ยท result-solution ยท result-ontology ยท result-cep ยท result-rewrite

๐Ÿ“‹ ํ†ตํ•ฉ ๊ฒฐ๊ณผ NEW

result-tabs.html โ€” ์œ„ 8๊ฐœ๋ฅผ ํƒญ์œผ๋กœ ๋ฌถ์€ ๋‹จ์ผ ํŽ˜์ด์ง€.

๐Ÿ› ๏ธ ๊ธฐ๋Šฅ (8)

cep.html ยท rewrite.html ยท derive.html๐Ÿ†• ยท citation-test.html๐Ÿ†• ยท generate-report.html๐Ÿ†• ยท proposal.html๐Ÿ†• ยท chatbot.html ยท admin.html

๐Ÿ“š ๋ฆฌ์†Œ์Šค (3)

manual.html ยท architecture.html ยท ontology.html

๐Ÿ“ก ์ธก์ • ์‹ ํ˜ธ (3๊ณ„์ธต)

์™ธ๋ถ€ ์ธํ”„๋ผ 4์‹ ํ˜ธ ยท ์ฝ˜ํ…์ธ  10 KPI ยท ai_writing 5์‹ ํ˜ธ

๐ŸŒ ์™ธ๋ถ€ ์ธํ”„๋ผ (4์‹ ํ˜ธ)

  • robots.txt โ€” 7๋ด‡ ์ฐจ๋‹จ ๊ฒ€์ถœ (GPTBot ยท ClaudeBot ยท ChatGPT-User ยท PerplexityBot ยท Google-Extended ยท Amazonbot ยท CCBot)
  • sitemap.xml โ€” URL ์ˆ˜ + lastmod
  • ์ƒ‰์ธ ํœด๋ฆฌ์Šคํ‹ฑ โ€” sitemap ร— 0.6 + ๋‚ด๋ถ€๋งํฌ ร— 1.2
  • ๋ฐฑ๋งํฌ ํœด๋ฆฌ์Šคํ‹ฑ โ€” ์™ธ๋ถ€๋งํฌ ร— 0.6 + ์–ธ๋ก ํ‚ค์›Œ๋“œ ร— 1.5

๐ŸŽฏ ai_writing 5์‹ ํ˜ธ โ†’ KPI 9 aiCitation ์ง์ ‘ ์‚ฐ์ถœ

  • ์งˆ๋ฌธํ˜• H2 โ‰ฅ 50%
  • ์ •์˜๋ฌธ H2 โ‰ฅ 50%
  • ๋ธŒ๋žœ๋“œ ๋ฐ˜๋ณต โ‰ฅ 50%
  • ์™ธ๋ถ€ ์‹ ํ˜ธ โ‰ฅ 30%
  • CTA ๋„๋‹ฌ๋ฅ  โ‰ฅ 50%

๐Ÿ“Š ์ฝ˜ํ…์ธ  10 KPI ยท ๊ฐ€์ค‘์น˜ ํ•ฉ 100%

#KPI๊ฐ€์ค‘์น˜์„ค๋ช…
1botAccess14%AI ๋ด‡ ์ ‘๊ทผ ํ—ˆ์šฉ ์—ฌ๋ถ€ (robots.txt)
2sitemapStatus10%sitemap.xml ์กด์žฌ ยท ์ตœ์‹ ์„ฑ
3indexExposure13%์ƒ‰์ธ ๋…ธ์ถœ ์ถ”์ •์น˜
4structuredData12%JSON-LD ยท Schema.org ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ
5pageInfo8%title ยท meta ยท OG ํƒœ๊ทธ
6contentDepth10%์ฝ˜ํ…์ธ  ๊นŠ์ด ยท ๊ธธ์ด ยท ์ •๋ณด๋Ÿ‰
7externalAuthority9%์™ธ๋ถ€ ๊ถŒ์œ„ (๋ฐฑ๋งํฌ ํœด๋ฆฌ์Šคํ‹ฑ)
8eeat8%๊ฒฝํ—˜ยท์ „๋ฌธ์„ฑยท๊ถŒ์œ„ยท์‹ ๋ขฐ
9aiCitation10%AI ์ธ์šฉ ๊ฐ€๋Šฅ์„ฑ (ai_writing 5์‹ ํ˜ธ ์ง์ ‘ ์‚ฐ์ถœ)
10cepScene6%CEP ์žฅ๋ฉด ๋งคํ•‘ ์ •๋„

โš ๏ธ ํŽ˜๋„ํ‹ฐ ๋งคํŠธ๋ฆญ์Šค

์กฐ๊ฑด์ ์šฉ ํŽ˜๋„ํ‹ฐ
structuredData < 30์ „ KPI -15%
indexExposure < 20aiCitation ๊ฐ•์ œ โ‰ค 25
AI ๋ด‡ 5์ข…+ ์ฐจ๋‹จ์ „ KPI -30%

๐Ÿ† 6๋‹จ๊ณ„ ๋“ฑ๊ธ‰ ์ฒด๊ณ„

95 / 85 / 70 / 55 / 40 ์ปท์˜คํ”„

๋“ฑ๊ธ‰์ ์ˆ˜ ๋ฒ”์œ„์˜๋ฏธ
A+95 ~ 100Premium
A85 ~ 94์šฐ์ˆ˜
B70 ~ 84๋ณดํ†ต
C55 ~ 69๋ฏธํก
D40 ~ 54๋ถ€์กฑ
F0 ~ 39์œ„๊ธ‰

๐Ÿ—บ๏ธ ๊ถŒ์žฅ ๊ฒฝ๋กœ 5๋‹จ๊ณ„ ๋งคํŠธ๋ฆญ์Šค

๋“ฑ๊ธ‰๊ถŒ์žฅ ๊ฒฝ๋กœ
F์‹ ๊ทœ ๊ฐœ๋ฐœ ํ•„์ˆ˜
D์‹ ๊ทœ ๊ฐœ๋ฐœ ๊ถŒ์žฅ
C๋น„๊ต ๊ฒ€ํ† 
B๋ถ€๋ถ„ ๊ฐœ์„ 
A+ / A๊ฐ•ํ™”

๐Ÿ•ธ๏ธ AXOS ์˜จํ†จ๋กœ์ง€ ์‹œ์Šคํ…œ

8์ข… ๋…ธ๋“œ + 9์ข… ๊ด€๊ณ„ ยท 22 ๋…ธ๋“œ ยท 27 ๊ด€๊ณ„๋กœ GEO ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง

๐Ÿงฉ ๋…ธ๋“œ 8์ข…

Actor ยท Process ยท Data ยท System ยท Artifact ยท Decision ยท Event ยท Issue

๐Ÿ”— ๊ด€๊ณ„ 9์ข…

FLOW ยท INPUT ยท OUTPUT ยท USES ยท CREATES ยท DECIDES ยท TRIGGERS ยท CAUSES ยท BLOCKS

๐Ÿ“ ๋ชจ๋ธ ๊ทœ๋ชจ

22 ๋…ธ๋“œ ยท 27 ๊ด€๊ณ„ โ€” GEO ์ง„๋‹จ/์žฌ์ž‘์„ฑ/CEP/๊ฒ€์ฆ/๋ฆฌํฌํŠธ ๋„๋ฉ”์ธ ์ „์ฒด๋ฅผ ํฌ๊ด„.

๐Ÿ”„ ๋ฐ์ดํ„ฐ ํ๋ฆ„ (Sequence)

๐Ÿ‘ค ์‚ฌ์šฉ์ž ๐ŸŒ Frontend โšก Vercel API ๐ŸŒ ๋Œ€์ƒ ์‚ฌ์ดํŠธ ๐Ÿค– Gemini 2.5 URL/์ฝ˜ํ…์ธ  ์ž…๋ ฅ POST /analyze robots/sitemap/HTML ์™ธ๋ถ€ ์ธํ”„๋ผ 4์‹ ํ˜ธ 10 KPI ์ง„๋‹จ ํ”„๋กฌํ”„ํŠธ JSON ์ ์ˆ˜ + ai_writing 5์‹ ํ˜ธ ํŽ˜๋„ํ‹ฐ ์ ์šฉ ํ›„ ๋“ฑ๊ธ‰ ์‚ฐ์ถœ result-tabs ์‹œ๊ฐํ™” CEP / 90์  ์žฌ์ž‘์„ฑ / 30๊ฐœ ํŒŒ์ƒ / ์ธ์šฉ ๊ฒ€์ฆ /cep-discover ยท /rewrite ยท /derive-30 ยท /citation-test /generate-report โ†’ ๋‹จ์ผ HTML ๊ณ„์•ฝ ์ „ํ™˜ (proposal.html)

๐Ÿ“ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

geo-score-ai/
โ”œโ”€โ”€ index.html                 # ๋ฉ”์ธ (Hero + ์ง„๋‹จ ํผ)
โ”œโ”€โ”€ analyzing.html             # ์ง„๋‹จ ์ง„ํ–‰ ํ™”๋ฉด
โ”œโ”€โ”€ dashboard.html             # ๋Œ€์‹œ๋ณด๋“œ (์ด๋ ฅ + ์ถ”์ด)
โ”‚
โ”œโ”€โ”€ result-tabs.html           # ๐Ÿ†• 8๊ฐœ ๊ฒฐ๊ณผ ํ†ตํ•ฉ ํŽ˜์ด์ง€ (ํƒญ)
โ”œโ”€โ”€ result-overview.html       # ์ง„๋‹จ ๊ฐœ์š”
โ”œโ”€โ”€ result-kpi.html            # 10 KPI ์ƒ์„ธ
โ”œโ”€โ”€ result-problems.html       # ๋ฌธ์ œ ๋„์ถœ
โ”œโ”€โ”€ result-comparison.html     # ๊ฒฝ์Ÿ์‚ฌ ๋น„๊ต
โ”œโ”€โ”€ result-solution.html       # ์†”๋ฃจ์…˜ ์ถ”์ฒœ
โ”œโ”€โ”€ result-ontology.html       # AXOS ์˜จํ†จ๋กœ์ง€ ๋ทฐ
โ”œโ”€โ”€ result-cep.html            # CEP ๊ฒฐ๊ณผ
โ”œโ”€โ”€ result-rewrite.html        # 90์  ์žฌ์ž‘์„ฑ ๊ฒฐ๊ณผ
โ”‚
โ”œโ”€โ”€ cep.html                   # ๐ŸŽฏ CEP 5๋‹จ๊ณ„ ๋ฐœ๊ตด
โ”œโ”€โ”€ rewrite.html               # โœจ 90์  ๊ธ€ ์žฌ์ž‘์„ฑ
โ”œโ”€โ”€ derive.html                # ๐Ÿ†• ๐ŸŒณ 30๊ฐœ ํŒŒ์ƒ
โ”œโ”€โ”€ citation-test.html         # ๐Ÿ†• ๐Ÿ” ์ธ์šฉ์„ฑ ๊ฒ€์ฆ
โ”œโ”€โ”€ generate-report.html       # ๐Ÿ†• ๐Ÿ“‹ ์˜์—…์šฉ ๋‹จ์ผ HTML ๋ฆฌํฌํŠธ
โ”œโ”€โ”€ proposal.html              # ๐Ÿ†• AI์ตœ์ ํ™” ํ™ˆํŽ˜์ด์ง€ ๊ฐœ๋ฐœ ์ œ์•ˆ์„œ
โ”œโ”€โ”€ chatbot.html               # ๐Ÿ’ฌ AI ์ƒ๋‹ด์‚ฌ
โ”œโ”€โ”€ admin.html                 # ๐Ÿ” ๊ด€๋ฆฌ์ž
โ”‚
โ”œโ”€โ”€ manual.html                # ๐Ÿ“– ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
โ”œโ”€โ”€ architecture.html          # ๐Ÿ—บ๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ (ํ˜„์žฌ)
โ”œโ”€โ”€ ontology.html              # ๐Ÿ•ธ๏ธ 3D ์˜จํ†จ๋กœ์ง€
โ”‚
โ”œโ”€โ”€ api/                       # Vercel Serverless Functions (9๊ฐœ)
โ”‚   โ”œโ”€โ”€ analyze.js             # 10 KPI + ์™ธ๋ถ€์ธก์ •
โ”‚   โ”œโ”€โ”€ recommend.js           # ์†”๋ฃจ์…˜ ์ถ”์ฒœ
โ”‚   โ”œโ”€โ”€ chat.js                # AI ์ƒ๋‹ด์‚ฌ
โ”‚   โ”œโ”€โ”€ cep-discover.js        # CEP 5๋‹จ๊ณ„ ๋ฐœ๊ตด
โ”‚   โ”œโ”€โ”€ rewrite-content.js     # ๐Ÿ†• 90์  ์ž๋™ ์žฌ์ž‘์„ฑ (์ž๊ฐ€๊ฒ€์ฆ)
โ”‚   โ”œโ”€โ”€ derive-30.js           # ๐Ÿ†• 30๊ฐœ ์งˆ๋ฌธํ˜• ํŒŒ์ƒ
โ”‚   โ”œโ”€โ”€ citation-test.js       # ๐Ÿ†• 10๊ฐœ ๊ฐ€์ƒ ์งˆ๋ฌธ ์ธ์šฉ ๊ฒ€์ฆ
โ”‚   โ”œโ”€โ”€ generate-report.js     # ๐Ÿ†• ๋‹จ์ผ HTML ๋ฆฌํฌํŠธ
โ”‚   โ””โ”€โ”€ health.js              # ํ—ฌ์Šค ์ฒดํฌ
โ”‚
โ”œโ”€โ”€ js/
โ”‚   โ”œโ”€โ”€ kpi-config.js          # 10 KPI ยท ๊ฐ€์ค‘์น˜ ยท ํŽ˜๋„ํ‹ฐ
โ”‚   โ”œโ”€โ”€ common.js              # Session ยท History ยท API client
โ”‚   โ”œโ”€โ”€ chart.js               # SVG ์ฐจํŠธ
โ”‚   โ”œโ”€โ”€ ai_writing.js          # 5์‹ ํ˜ธ ์ธก์ • โ†’ aiCitation
โ”‚   โ””โ”€โ”€ ontology.js            # AXOS 22 ๋…ธ๋“œ / 27 ๊ด€๊ณ„
โ”‚
โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ main.css               # ๋””์ž์ธ ์‹œ์Šคํ…œ
โ”‚   โ””โ”€โ”€ dashboard.css          # ๋Œ€์‹œ๋ณด๋“œ ์Šคํƒ€์ผ
โ”‚
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ vercel.json
โ”œโ”€โ”€ .env.example               # GEMINI_API_KEY
โ””โ”€โ”€ .gitignore