[๊ณ ๋ํ] SEO ๋ถ์ ํจ๋ ยท ์๋ ํ๊ทธ ์ ์ ยท ๋ฐํ ํ์คํ ๋ฆฌ ๊ฐ์
์ค๋์ ์ด๋๋ฏผ ํจ๋์ ์ฝํ ์ธ ํ์ง ๊ด๋ จ ๊ธฐ๋ฅ ์ธ ๊ฐ์ง๋ฅผ ์ง์ค์ ์ผ๋ก ๊ฐ์ ํ๋ค. SEO ์ ์๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋ ๋ถ์ ํจ๋, AI ๊ธฐ๋ฐ ํด์ํ๊ทธ ์๋ ์ ์, ๊ทธ๋ฆฌ๊ณ ๋ฐํ ์ด๋ ฅ์ ์ข ๋ ํธ๋ฆฌํ๊ฒ ํ์ํ ์ ์๋ ํํฐยทํ์ด์ง๋ค์ด์ ๊น์ง โ ๋ชจ๋ ๋ธ๋ก๊ทธ ์ด์ ํจ์จ์ ๋์ด๊ธฐ ์ํ ์์ ์ด๋ค.
1. SEO ๋ถ์ ํจ๋ (์ค์๊ฐ)
๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ์ด์ง(/admin/preview/[id])์ SEO ๋ถ์ ํจ๋์ ์ถ๊ฐํ๋ค. ๊ธ์ ์์ฑํ๋ฉด์ ์ฆ๊ฐ์ ์ผ๋ก SEO ์ ์(0~100์ )์ ์ธ๋ถ ์ฒดํฌ ํญ๋ชฉ์ ํ์ธํ ์ ์๋ค.
์ ์ ๊ตฌ์ฑ (7๊ฐ ํญ๋ชฉ)
- ์ ๋ชฉ ๊ธธ์ด 20~60์ ์ ์ง โ 20pt
- ์์ฝ 50~160์ โ 20pt
- ๋ณธ๋ฌธ 300์ ์ด์ (700์ ์ด์ ๋ง์ ) โ 20pt
- H2 ํค๋ฉ 1๊ฐ ์ด์ ํฌํจ โ 15pt
- ์ธ๋ค์ผ ์ด๋ฏธ์ง ์ค์ ์ฌ๋ถ โ 10pt
- ์ฌ๋ฌ๊ทธ ํ์ (์์ซ์ยทํ์ดํ) ์ ํจ์ฑ โ 5pt
- ํค์๋ ๋ฐ๋ 0.5~3% (์ ํ ์ ๋ ฅ ์) โ 10pt ์ ์๋ 70์ ์ด์ ์ด๋ก, 50์ ์ด์ ๋ ธ๋, ๋ฏธ๋ง ๋นจ๊ฐ์ผ๋ก ์์์ด ๊ตฌ๋ถ๋๋ฉฐ, ํค์๋๋ฅผ ์ ๋ ฅํ์ง ์์ ๊ฒฝ์ฐ 90์ ๋ง์ ์ 100์ ์ผ๋ก ์ ๊ทํํด ํ์ํ๋ค. ์์ ๋ ์ ์๊ฐ๊ณผ ๋จ์ด ์๋ ํจ๊ป ๋ณด์ฌ์ค ๊ฐ๋ ์ฑ ํ์ ์ ๋์์ ์ค๋ค.
ํต์ฌ ํ์ผ: lib/seo-utils.ts (์์ ์ ํธ), components/admin/SeoAnalysisPanel.tsx (UI ์ปดํฌ๋ํธ)
2. AI ์๋ ํ๊ทธ ์ ์
๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ์ด์ง ๋ฉํ๋ฐ์ดํฐ ์นด๋์ 'AI ํ๊ทธ ์ ์' ๋ฒํผ์ ์ถ๊ฐํ๋ค. ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ๋ชฉยท์์ฝยท๋ณธ๋ฌธ์ OpenAI gpt-4o-mini์ ์ ๋ฌํด SEO์ ์์ ๊ณต์ ์ ์ ํฉํ ํ๊ตญ์ด ํด์ํ๊ทธ 5~10๊ฐ๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ค.
์ฃผ์ ๋์
- POST /api/blog/suggest-tags ํธ์ถ โ ์ด๋๋ฏผ ์ธ์ ์ธ์ฆ ํ AI์ ํ๋กฌํํธ ์ ๋ฌ
- ์๋ต JSON ๋ฐฐ์ด์์ '#' ๊ธฐํธ๋ฅผ ์ ๊ฑฐํ ํ๊ทธ ์นฉ(chip) UI๋ก ํ์
- ๊ฐ๋ณ X ๋ฒํผ์ผ๋ก ๋ถํ์ํ ํ๊ทธ ์ ๊ฑฐ ๊ฐ๋ฅ
- '๋ณธ๋ฌธ ํ๋จ์ ์ฝ์ ' ๋ฒํผ์ผ๋ก ์๋ํฐ ๋ณธ๋ฌธ ๋์ #ํ๊ทธ ๋ฌธ์์ด ์๋ ์ถ๊ฐ API ํธ์ถ์ withRetry()๋ก ๊ฐ์ธ 5xxยท429ยทํ์์์ ์ค๋ฅ ์ ์ต๋ 3ํ ์ฌ์๋ํ๋ค. ๋ณธ๋ฌธ์ ๋งํฌ๋ค์ด์ ์ ๊ฑฐํ ์์ ํ ์คํธ ์ต๋ 3,000์๋ง AI์ ์ ๋ฌํด ๋น์ฉ์ ์ ๊ฐํ๋ค.
3. ๋ฐํ ํ์คํ ๋ฆฌ ๊ฐ์
/admin/posts ํ์ด์ง๋ ๊ธฐ์กด์ ๋จ์ ๋ชฉ๋ก๊ณผ ์ ๋ชฉ ๊ฒ์๋ง ์ ๊ณตํ๋ค. ๊ฒ์๋ฌผ์ด ์์ผ์๋ก ํ์์ด ๋ถํธํด์ง๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค.
์ถ๊ฐ๋ ๊ธฐ๋ฅ
- ์ธ์ด ํํฐ (์ ์ฒด / ํ๊ตญ์ด KO / ์์ด EN): ๋ก์ผ์ผ๋ณ ๋ถ๋ฆฌ ํ์ธ
- ๊ธฐ๊ฐ ํํฐ (์ ์ฒด / ์ต๊ทผ 1๊ฐ์ / 3๊ฐ์ / 6๊ฐ์ / 1๋ ): ๋ ์ง ๋ฒ์ ์ขํ๊ธฐ
- ํ์ด์ง๋ค์ด์ (20๊ฑด/ํ์ด์ง): ๋๋ ๊ฒ์๋ฌผ์์ ์พ์ ํ ํ์
- ํค๋ KO/EN ์นด์ดํธ ํ์: ํ์ฌ ํํฐ ๊ฒฐ๊ณผ์์ ๊ฐ ์ธ์ด ๊ฑด์ ์ค์๊ฐ ํ์ธ
- '๋ธ๋ก๊ทธ์์ ๋ณด๊ธฐ' ๋ฒํผ: ExternalLink ์์ด์ฝ, ์ ํญ์ผ๋ก ์ค์ ๋ธ๋ก๊ทธ ํฌ์คํธ ๋ฐ๋ก ์ด๊ธฐ ๋ชจ๋ ํํฐ๋ง๊ณผ ํ์ด์ง๋ค์ด์ ์ ํด๋ผ์ด์ธํธ์์ useMemo๋ก ์ฒ๋ฆฌํด API ์์ฒญ์ ์ถ๊ฐํ์ง ์์๋ค. ํํฐ ๋ณ๊ฒฝ ์ ํ์ด์ง ๋ฒํธ๋ ์๋์ผ๋ก 1๋ก ๋ฆฌ์ ๋๋ค.
๋ง๋ฌด๋ฆฌ
์ธ ๊ธฐ๋ฅ ๋ชจ๋ ๊ธฐ์กด ์ํคํ ์ฒ(Next.js App Router, Notion CMS, shadcn/ui)์ ์์ฐ์ค๋ฝ๊ฒ ํตํฉ๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ์์ด Date ๋ด์ฅ API๋ก ๊ธฐ๊ฐ ํํฐ๋ฅผ ๊ตฌํํ ์ , AI ํ๊ทธ ์ ์์์ ๋งํฌ๋ค์ด ์ ์ ํ 3,000์ ์ ํ์ผ๋ก ํ ํฐ ๋น์ฉ์ ๊ด๋ฆฌํ ์ ์ด ์์ ํฌ์ธํธ์๋ค.
๋ค์ ๋จ๊ณ๋ก๋ SEO ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ Notion ๊ฒ์๋ฌผ ๋ฉํ๋ฐ์ดํฐ์ ์๋ ์ ์ฅํ๊ฑฐ๋, ํ๊ทธ ํ์คํ ๋ฆฌ๋ฅผ ๋์ ํด ์์ฃผ ์ฐ๋ ํ๊ทธ๋ฅผ ์ถ์ฒํ๋ ๊ธฐ๋ฅ์ ๊ณ ๋ คํด๋ณผ ์ ์๋ค.
โฌ๏ธ ์ด ๊ธ์ด ๋์์ด ๋์ จ๋ค๋ฉด, ์๋ ๊ด๊ณ ๋ฅผ ํ ๋ฒ๋ง ํด๋ฆญํด์ฃผ์ธ์! ์ ์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค ๐โโ๏ธ โฌ๏ธ