[Gemini ํ•ด์ปคํ†ค] Creator Hub: AI๋กœ YouTube ์•…์„ฑ ๋Œ“๊ธ€์„ ์ž๋™ ๋ถ„์„ํ•˜๋Š” ํ’€์Šคํƒ ์„œ๋น„์Šค

Posted by Euisuk's Dev Log on March 5, 2026

[Gemini ํ•ด์ปคํ†ค] Creator Hub: AI๋กœ YouTube ์•…์„ฑ ๋Œ“๊ธ€์„ ์ž๋™ ๋ถ„์„ํ•˜๋Š” ํ’€์Šคํƒ ์„œ๋น„์Šค

์ง€๋‚œ 2์›” 28์ผ, ์„œ์šธ ์„ธ๋น›๋‘ฅ๋‘ฅ์„ฌ์—์„œ Google Gemini 3 Seoul Hackathon์ด ์—ด๋ ธ์Šต๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋ฃจ ๋™์•ˆ Gemini AI๋ฅผ ํ™œ์šฉํ•ด ์—”ํ„ฐํ…Œ์ธ๋จผํŠธ, ํ•˜๋“œ ํ…Œํฌ, ์‚ฌํšŒ์  ์„ (Social Good) ์„ธ ๊ฐ€์ง€ ์ฃผ์ œ ์ค‘ ํ•˜๋‚˜๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฒจ๋ฃจ๋Š” ํ–‰์‚ฌ์˜€์Šต๋‹ˆ๋‹ค. ์˜ค์ „ 10์‹œ ์˜คํ”„๋‹๋ถ€ํ„ฐ ์˜คํ›„ 5์‹œ ์ œ์ถœ ๋งˆ๊ฐ๊นŒ์ง€, ์•ฝ 7์‹œ๊ฐ„ ์•ˆ์— ์•„์ด๋””์–ด๋ฅผ ํ˜„์‹ค๋กœ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ฒ˜์Œ์—” ํ•ด์ปคํ†ค ์ž์ฒด์— ํฐ ๊ธฐ๋Œ€ ์—†์ด ๊ฐ”์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ ๊ณ ์ˆ˜๋“ค๋„ ๋งŽ๊ณ  ํ•˜๋‹ค ๋ณด๋‹ˆ, โ€œ๊ตฌ๊ธ€ ํ•ด์ปคํ†ค์ด๋ผ๋‹ˆ ์žฌ๋ฐŒ๊ฒ ๋‹คโ€ ์‹ถ์–ด์„œ ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์ด ์˜ค๋‚˜ ๊ตฌ๊ฒฝ๊ฐ€์•ผ์ง€~ ํ•˜๋Š” ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ์ฐธ๊ฐ€ ์‹ ์ฒญ์„ ํ–ˆ๋Š”๋ฐ, ๋ง‰์ƒ ํ˜„์žฅ์—์„œ ์˜†์— ์•‰์€ ๋ถ„๋“ค์ด ์ œ๊ฐ€ ๊ฐ€์ ธ์˜จ ์ฃผ์ œ์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹œ๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํŒ€์ด ๊พธ๋ ค์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐ์ง€๋„ ๋ชปํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋์Šต๋‹ˆ๋‹ค.

์ €ํฌ ํŒ€์ด ์„ ํƒํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” Entertainment ร— Social Good ร— AI์˜€์Šต๋‹ˆ๋‹ค. ์ฃผ์ œ๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํฌ๋ฆฌ์—์ดํ„ฐ ๋ฌธ์ œ๋กœ ์‹œ์„ ์ด ํ–ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

YouTube ํฌ๋ฆฌ์—์ดํ„ฐ๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•œ ๋ฒˆ์ฏค ์•…์„ฑ ๋Œ“๊ธ€ ๋•Œ๋ฌธ์— ์ง€์นœ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ“๊ธ€์ฐฝ์„ ์—ฌ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋‘๋ ค์šด ๋‚ ๋„ ์žˆ๊ณ , ์ˆ˜์ฒœ ๊ฐœ์˜ ๋Œ“๊ธ€ ์†์—์„œ ์–ด๋””์„œ๋ถ€ํ„ฐ ๋Œ€์‘ํ•ด์•ผ ํ• ์ง€ ๋ง‰๋ง‰ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ AI๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Creator Hub๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://youtu.be/3u62IiMplQQ

Creator Hub๋Š” YouTube ์˜์ƒ URL ํ•˜๋‚˜๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋Œ“๊ธ€ ์ˆ˜์ง‘๋ถ€ํ„ฐ AI ๋ถ„์„, ๋ฆฌํฌํŠธ ์ƒ์„ฑ๊นŒ์ง€ ์ „ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Google Gemini AI์™€ ํ•œ๊ตญ์–ด ํŠนํ™” ๊ทœ์น™ ์—”์ง„์„ ๊ฒฐํ•ฉํ•˜์—ฌ, ๊ธฐ์กด ํ•„ํ„ฐ๋กœ๋Š” ํƒ์ง€ํ•˜๊ธฐ ์–ด๋ ค์šด ํ•œ๊ตญ์–ด ์•…์„ฑ ๋Œ“๊ธ€๊นŒ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์„œ๋น„์Šค์˜ ๊ธฐํš ๋ฐฐ๊ฒฝ๋ถ€ํ„ฐ ํ•ต์‹ฌ ๊ธฐ์ˆ  ๊ตฌํ˜„๊นŒ์ง€ ์ „์ฒด ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


์™œ ๋งŒ๋“ค์—ˆ๋Š”๊ฐ€: ํฌ๋ฆฌ์—์ดํ„ฐ๊ฐ€ ์ง๋ฉดํ•œ ํ˜„์‹ค

ํ•œ๊ตญ์ฝ˜ํ…์ธ ์ง„ํฅ์› ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด, ํ•œ๊ตญ ํฌ๋ฆฌ์—์ดํ„ฐ์˜ 68%๊ฐ€ ์•…์„ฑ ๋Œ“๊ธ€๋กœ ์ธํ•œ ์ •์‹ ์  ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. K-POP ์•„์ด๋Œ๊ณผ ์ธํ”Œ๋ฃจ์–ธ์„œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ ์‚ฌ์ด๋ฒ„ ๋ถˆ๋ง์€ ์ด๋ฏธ ์‹ฌ๊ฐํ•œ ์‚ฌํšŒ ๋ฌธ์ œ๋กœ ๋Œ€๋‘๋˜์—ˆ๊ณ , ์ˆ˜์ฒœ์—์„œ ์ˆ˜๋งŒ ๊ฐœ์— ๋‹ฌํ•˜๋Š” ๋Œ“๊ธ€์„ ์ˆ˜๋™์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋Œ“๊ธ€ ํ•„ํ„ฐ๋ง ๋„๊ตฌ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์˜์–ด ๊ธฐ๋ฐ˜์˜ ๋‹จ์ˆœ ํ‚ค์›Œ๋“œ ๋งค์นญ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๊ตญ์–ด ์ธํ„ฐ๋„ท ๋ฌธํ™”์—๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํƒ์ง€ํ•  ์ˆ˜ ์—†๋Š” ๊ณ ์œ ํ•œ ํŒจํ„ด์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ดˆ์„ฑ ์š•์„ค: โ€œใ……ใ…‚โ€, โ€œใ…ˆใ„นโ€ โ€” ์ž์Œ๋งŒ์œผ๋กœ ์š•์„ค์„ ํ‘œํ˜„
  • ๋ณ€ํ˜• ์š•์„ค: โ€œ์‹œ1๋ฐœโ€, โ€œ์”จ๋น โ€, โ€œใ…‚r๋ณดโ€ โ€” ์ˆซ์ž๋‚˜ ์˜๋ฌธ์„ ์„ž์–ด ํ•„ํ„ฐ ํšŒํ”ผ
  • ๋ฐ˜์–ด๋ฒ•/๋Œ๋ ค๊นŒ๊ธฐ: โ€œ์™€ ์ง„์งœ ์ž˜ํ•˜์‹ ๋‹ค~ใ…‹ใ…‹โ€ โ€” ํ‘œ๋ฉด์ ์œผ๋กœ๋Š” ์นญ์ฐฌ์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์กฐ๋กฑ
  • K-POP ํŒฌ๋ค ์€์–ด: โ€œ๋น ์ˆœ์ดโ€, โ€œ์‚ฌ์ƒํŒฌโ€, โ€œํƒˆ๋•โ€ โ€” ํŠน์ • ๋ฌธํ™”๊ถŒ์—์„œ๋งŒ ํ†ต์šฉ๋˜๋Š” ๊ณต๊ฒฉ ํ‘œํ˜„

์ด๋Ÿฐ ๋ฐฐ๊ฒฝ์—์„œ Creator Hub๋Š” Google Gemini Hackathon์˜ K-POP ร— Social Good ร— AI ์นดํ…Œ๊ณ ๋ฆฌ ์ถœํ’ˆ์ž‘์œผ๋กœ ๊ธฐํš๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ๋งฅ๋ฝ์„ ๊นŠ์ด ์ดํ•ดํ•˜๊ณ , ํฌ๋ฆฌ์—์ดํ„ฐ์—๊ฒŒ ์‹ค์งˆ์ ์ธ ๋Œ€์‘ ๋ฐฉ์•ˆ๊นŒ์ง€ ์ œ์‹œํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.


์„œ๋น„์Šค ํ•œ๋ˆˆ์— ๋ณด๊ธฐ

Creator Hub์˜ ์‚ฌ์šฉ ํ๋ฆ„์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
YouTube URL ์ž…๋ ฅ
    โ”‚
    โ–ผ
๋Œ“๊ธ€ ์ˆ˜์ง‘ (YouTube Data API v3, ์ตœ๋Œ€ 100๊ฐœ)
    โ”‚
    โ–ผ
์ด์ค‘ ๋ถ„์„ (Rule ์—”์ง„ + Gemini AI)
    โ”‚
    โ–ผ
๊ฒฐ๊ณผ ๋Œ€์‹œ๋ณด๋“œ (๋…์„ฑ ์ ์ˆ˜, ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„ํฌ, ๋Œ€์‘ ์ œ์•ˆ, AI ์ธ์‚ฌ์ดํŠธ)

๋ถ„์„ ๊ฒฐ๊ณผ๋Š” ๊ณ ์œ  URL๋กœ ์ƒ์„ฑ๋˜์–ด ํŒ€์ด๋‚˜ ์†Œ์†์‚ฌ์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. API ํ‚ค๋Š” ์„œ๋ฒ„์— ์˜๊ตฌ ์ €์žฅ๋˜์ง€ ์•Š์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


๊ธฐ์ˆ  ์Šคํƒ

Creator Hub๋Š” ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ํ’€์Šคํƒ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ๋Š” Next.js 16(App Router), React 19, TypeScript, Tailwind CSS v4, Framer Motion์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” FastAPI, LangGraph, LangChain, Gemini 2.5 Flash, Pydantic v2, Python 3.12+๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ API๋กœ๋Š” YouTube Data API v3, YouTube Transcript API, Google Gemini API๋ฅผ ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค.

์™œ Next.js 16์ธ๊ฐ€: App Router์˜ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ , API Routes๋กœ ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๋‹จ์ผ ํ”„๋กœ์ ํŠธ์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ํ•ด์ปคํ†ค ํ™˜๊ฒฝ์—์„œ์˜ ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘์— ์ตœ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์™œ LangGraph์ธ๊ฐ€: ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฐ ๋‹จ๊ณ„(์ˆ˜์ง‘ โ†’ ํ•„ํ„ฐ๋ง โ†’ ๋ถ„์„ โ†’ ๊ฒ€์ฆ)๋ฅผ ๋…๋ฆฝ ๋…ธ๋“œ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ(์•ˆ์ „ํ•œ ๋Œ“๊ธ€์€ AI ํ˜ธ์ถœ ์Šคํ‚ต)๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ๋จธ์‹  ๊ธฐ๋ฐ˜์œผ๋กœ ์—๋Ÿฌ ํ•ธ๋“ค๋ง๊ณผ ํด๋ฐฑ ๋กœ์ง๋„ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.


ํ•ต์‹ฌ ๊ตฌํ˜„: ์ด์ค‘ ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ

Creator Hub์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์  ์ฐจ๋ณ„์ ์€ Rule ์—”์ง„๊ณผ Gemini AI๋ฅผ ๊ฒฐํ•ฉํ•œ ์ด์ค‘ ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค.

์™œ ์ด์ค‘ ๋ถ„์„์ธ๊ฐ€

๋‘ ๊ณ„์ธต์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ•์ ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

Rule ์—”์ง„์€ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•˜๊ณ  API ๋น„์šฉ์ด ์—†์œผ๋ฉฐ, ๋ช…ํ™•ํ•œ ํŒจํ„ด(์ดˆ์„ฑ ์š•์„ค, ๋ณ€ํ˜• ์š•์„ค ๋“ฑ)์— ๋Œ€ํ•ด ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹จ, ๋ฐ˜์–ด๋ฒ•์ด๋‚˜ ๋งฅ๋ฝ ์˜์กด ํ‘œํ˜„์€ ํƒ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Gemini AI๋Š” ๋ฌธ๋งฅ ์ดํ•ด, ๋ฐ˜์–ด๋ฒ•ยท์€์œ  ํƒ์ง€, ๋ฌธํ™”์  ๋งฅ๋ฝ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, API ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ณ  ์‘๋‹ต์— ์ˆ˜ ์ดˆ๊ฐ€ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

์ด ๋‘˜์„ ์กฐํ•ฉํ•˜๋ฉด ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ API ๋น„์šฉ์„ 40~60% ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ YouTube ์˜์ƒ์—์„œ ๋Œ“๊ธ€์˜ 40~60%๋Š” ๊ฑด์ „ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Rule ์—”์ง„์ด ์ด๋Ÿฐ ๋Œ“๊ธ€์„ ์‚ฌ์ „์— ๊ฑธ๋Ÿฌ๋‚ด๋ฉด, 100๊ฐœ ๋Œ“๊ธ€ ๊ธฐ์ค€ 100๋ฒˆ ๋Œ€์‹  40~60๋ฒˆ๋งŒ Gemini API๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ธ ํ๋ฆ„

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[1] fetch_transcript โ”€โ”€ YouTube ์ž๋ง‰ ์ˆ˜์ง‘ (ํ•œ๊ตญ์–ด ์šฐ์„ )
    โ”‚
[2] fetch_comments โ”€โ”€โ”€ YouTube Data API v3, ์ตœ๋Œ€ 100๊ฐœ, ๊ด€๋ จ๋„์ˆœ
    โ”‚
[3] prescreen โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Rule Engine (15๊ฐœ ์ •๊ทœ์‹ ๊ทœ์น™)
    โ”‚
    โ”œโ”€ score < 20 (safe, 40~60%)
    โ”‚   โ†’ LLM ํ˜ธ์ถœ ์—†์ด ๋ฐ”๋กœ validate
    โ”‚
    โ””โ”€ score โ‰ฅ 20 (suspect, 40~60%)
        โ”‚
[4] analyze โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Gemini LLM
    โ”‚                 ์ž๋ง‰ ๋งฅ๋ฝ + ๋Œ“๊ธ€, ๊ตฌ์กฐํ™” JSON ์ถœ๋ ฅ
    โ”‚
[5] validate โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๊ต์ฐจ๊ฒ€์ฆ + ์ตœ์ข… ํƒœ๊น…
                      ์ตœ์ข… ์ ์ˆ˜: AIร—0.7 + Ruleร—0.3
                      ์นดํ…Œ๊ณ ๋ฆฌ: AI + Rule์˜ Union

์ž๋ง‰์ด ์ค‘์š”ํ•œ ์ด์œ 

๊ฐ™์€ โ€œ๋นจ๊ฐฑ์ดโ€๋ผ๋Š” ๋‹จ์–ด๋„ ์ •์น˜ ํ† ๋ก  ์˜์ƒ์—์„œ๋Š” ์ธ์šฉ์ด์ง€๋งŒ, ์•„์ด๋Œ ๋ฌด๋น„์—์„œ๋Š” ํ˜์˜ค ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. Gemini์—๊ฒŒ ์˜์ƒ ์ž๋ง‰์„ ๋งฅ๋ฝ์œผ๋กœ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์ด๋Ÿฐ ํŒ๋‹จ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

์ž๋ง‰์ด ๊ธด ๊ฒฝ์šฐ์—๋Š” ์ตœ๋Œ€ 2000์ž๋กœ ์ œํ•œํ•˜๋˜, 3๋“ฑ๋ถ„ ๊ท ๋“ฑ ์ƒ˜ํ”Œ๋ง์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•ž 1/3(๋„์ž…๋ถ€), ์ค‘๊ฐ„ 1/3(ํ•ต์‹ฌ ๋‚ด์šฉ), ๋ 1/3(๋งˆ๋ฌด๋ฆฌ)์„ ๊ท ๋“ฑํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋Œ“๊ธ€์ด ์˜์ƒ ์ค‘๋ฐ˜~ํ›„๋ฐ˜ ๋‚ด์šฉ์— ๋ฐ˜์‘ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์•ž๋ถ€๋ถ„๋งŒ ์ž˜๋ผ๋‚ด๋ฉด ํ•ต์‹ฌ ๋‚ด์šฉ๊ณผ ๊ฒฐ๋ก ์ด ๋ˆ„๋ฝ๋ฉ๋‹ˆ๋‹ค.


ํ•œ๊ตญ์–ด ์•…์„ฑ ๋Œ“๊ธ€ ํƒ์ง€์˜ ์–ด๋ ค์›€๊ณผ ํ•ด๊ฒฐ

Rule ์—”์ง„ (korean_profanity.py)

15๊ฐœ์˜ ์ •๊ทœ์‹ ๊ทœ์น™์ด 10๊ฐœ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์น™ ํƒ์ง€ ๋ฐฉ์‹ ์˜ˆ์‹œ
์ดˆ์„ฑ ์š•์„ค ํ•œ๊ธ€ ์ž๋ชจ ์กฐํ•ฉ ์ •๊ทœ์‹ ใ……ใ…‚, ใ…ˆใ„น, ใ„ฑใ……ใ„ฒ
๋ณ€ํ˜• ์š•์„ค ์ˆซ์ž/์˜๋ฌธ ํ˜ผํ•ฉ ํŒจํ„ด ์‹œ1๋ฐœ, ์”จ๋น , ใ…‚r๋ณด
๋ฐ˜์–ด๋ฒ•/๋น„๊ผผ ใ…‹ ๋ฐ˜๋ณต(10๊ฐœ+) + ๋ฌผ๊ฒฐ(~) ํŒจํ„ด โ€œ์ž˜ํ•˜์‹ ๋‹ค~ใ…‹ใ…‹ใ…‹โ€
์œ„ํ˜‘ ํ‘œํ˜„ ํญ๋ ฅ/์‹ ์ƒ ๊ด€๋ จ ํ‚ค์›Œ๋“œ ์ฃฝ์–ด, ์ฐพ์•„๊ฐ„๋‹ค, ์‹ ์ƒ
ํŒฌ๋ค๊ฐˆ๋“ฑ K-POP ํŒฌ๋ค ์šฉ์–ด ๋น ์ˆœ์ด, ์‚ฌ์ƒํŒฌ, ํƒˆ๋•
์„ฑ๋ณ„ํ˜์˜ค ์„ฑ๋ณ„ ๋น„ํ•˜ ํ‘œํ˜„ ํ•œ๋‚จ์ถฉ, ๊น€์น˜๋…€
๊ด‘๊ณ /์ŠคํŒธ URL ํŒจํ„ด + ํ™๋ณด ํ‚ค์›Œ๋“œ ๋งํฌ, ๊ตฌ๋…ํ•ด์ฃผ์„ธ์š”

์˜คํƒ ๋ฐฉ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋„ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. โ€œ์ฃฝ์–ด๋„ ์•ˆ ํ•ดโ€๋Š” ๊ด€์šฉ๊ตฌ์ด๋ฏ€๋กœ THREAT์—์„œ ์ œ์™ธํ•˜๊ณ , โ€œํ•œ๋‚จ๋™โ€์€ ์ง€๋ช…์ด๋ฏ€๋กœ HATE_SPEECH์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ใ…‹ 5๊ฐœ๋Š” ์ผ๋ฐ˜์ ์ธ ์›ƒ์Œ์ด์ง€๋งŒ 10๊ฐœ ์ด์ƒ์ด๋ฉด ์กฐ๋กฑ์œผ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

Gemini AI๋Š” Rule์ด ์žก์ง€ ๋ชปํ•˜๋Š” ๋งฅ๋ฝ ์˜์กด์  ํ‘œํ˜„์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์˜์ƒ ์ž๋ง‰์„ ๋งฅ๋ฝ์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ๋Œ“๊ธ€์˜ ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์„ฑ์  ๋Œ€์ƒํ™”(SEXUAL)์ฒ˜๋Ÿผ Rule ์—”์ง„์— ๊ทœ์น™์ด ์—†๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋„ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค.


10๋Œ€ ๋…์„ฑ ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜ ์ฒด๊ณ„

Creator Hub๋Š” ๋‹จ์ˆœํ•œ ๊ธ์ •/๋ถ€์ • ๋ถ„๋ฅ˜๊ฐ€ ์•„๋‹Œ, 5๋Œ€ ๋„๋ฉ”์ธ โ†’ 10๊ฐœ ์„ธ๋ถ„ํ™” ์นดํ…Œ๊ณ ๋ฆฌ ๊ตฌ์กฐ๋กœ ์•…์„ฑ ๋Œ“๊ธ€์„ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
VERBAL_ABUSE (์–ธ์–ด์  ํญ๋ ฅ)
โ””โ”€โ”€ PROFANITY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์š•์„ค/๋น„์†์–ด

PERSONAL_TARGETING (๊ฐœ์ธ ๊ณต๊ฒฉ)
โ”œโ”€โ”€ BLAME โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๋น„๋‚œ/๋น„๋ฐฉ
โ”œโ”€โ”€ MOCKERY โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์กฐ๋กฑ/๋น„๊ผผ
โ””โ”€โ”€ PERSONAL_ATTACK โ”€โ”€โ”€โ”€โ”€โ”€ ์ธ์‹ ๊ณต๊ฒฉ

GROUP_TARGETING (์ง‘๋‹จ ๊ณต๊ฒฉ)
โ”œโ”€โ”€ HATE_SPEECH โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ํ˜์˜ค ํ‘œํ˜„
โ”œโ”€โ”€ DISCRIMINATION โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ฐจ๋ณ„
โ””โ”€โ”€ FAN_WAR โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ํŒฌ๋ค ๊ฐˆ๋“ฑ/์•ˆํ‹ฐ

BEHAVIORAL (์œ„ํ˜‘์  ํ–‰๋™)
โ”œโ”€โ”€ THREAT โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์œ„ํ˜‘/ํ˜‘๋ฐ•
โ””โ”€โ”€ SEXUAL โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์„ฑํฌ๋กฑ

CONTENT_ABUSE (์ฝ˜ํ…์ธ  ์•…์šฉ)
โ””โ”€โ”€ SPAM โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ŠคํŒธ/๊ด‘๊ณ 

ํ•˜๋‚˜์˜ ๋Œ“๊ธ€์— ์—ฌ๋Ÿฌ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋™์‹œ์— ํƒ์ง€๋  ๊ฒฝ์šฐ ์‹ฌ๊ฐ๋„๊ฐ€ ์ถ”๊ฐ€๋กœ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€œใ……ใ…‚ ์ฐพ์•„๊ฐ„๋‹คโ€๋Š” PROFANITY(35์ ) + THREAT(65์ )๊ฐ€ ๊ฒฐํ•ฉ๋˜์–ด AMPLIFIES ๋ณด๋„ˆ์Šค(+20)๊ฐ€ ์ ์šฉ๋˜๊ณ , ์ตœ์ข… ์ ์ˆ˜๋Š” 85์ (critical)์ด ๋ฉ๋‹ˆ๋‹ค.

๋…์„ฑ ์ˆ˜์ค€์€ 0~100์ ์„ ๊ธฐ์ค€์œผ๋กœ safe(0~19), mild(20~39), moderate(40~59), severe(60~79), critical(80~100)์˜ 5๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.


์ ์ˆ˜ ์‚ฐ์ • ๋กœ์ง

suspect ๋Œ“๊ธ€์— ๋Œ€ํ•ด Rule๊ณผ LLM ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์‚ฐํ•˜๋Š” ๊ณต์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

merged_score=round(ai_scoreร—0.7+rule_scoreร—0.3)\text{merged\_score} = \text{round}(\text{ai\_score} \times 0.7 + \text{rule\_score} \times 0.3)merged_score=round(ai_scoreร—0.7+rule_scoreร—0.3)

final_score=minโก(maxโก(merged_score,ย ai_scoreโˆ’10),ย 100)\text{final\_score} = \min(\max(\text{merged\_score},\ \text{ai\_score} - 10),\ 100)final_score=min(max(merged_score,ย ai_scoreโˆ’10),ย 100)

AI 70% / Rule 30%์ธ ์ด์œ : Gemini๋Š” ๋ฌธ๋งฅ๊ณผ ๋ฐ˜์–ด๋ฒ•์„ ์ดํ•ดํ•˜๋ฏ€๋กœ ์ฃผ๋„์  ์—ญํ• ์„ ๋งก๊ณ , Rule์€ ๋ช…ํ™•ํ•œ ํŒจํ„ด์— ๋Œ€ํ•œ ํ™•์‹ค์„ฑ์„ 30% ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

AI ํ•˜ํ•œ์„  ๋ณด์žฅ์ด ํ•„์š”ํ•œ ์ด์œ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Rule ์ ์ˆ˜๊ฐ€ 0์ธ๋ฐ AI๊ฐ€ 80์ ์ด๋ฉด, ๋‹จ์ˆœ ๊ฐ€์ค‘ํ•ฉ์‚ฐ์€ 80ร—0.7+0ร—0.3=5680 \times 0.7 + 0 \times 0.3 = 5680ร—0.7+0ร—0.3=56์ด ๋ฉ๋‹ˆ๋‹ค. ํ•˜ํ•œ์„ ์ด ์—†์œผ๋ฉด AI๊ฐ€ โ€œ๋งค์šฐ ์œ„ํ—˜โ€์œผ๋กœ ํŒ๋‹จํ•œ ๋Œ“๊ธ€์ด moderate๋กœ ํ•˜ํ–ฅ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. maxโก(56,80โˆ’10)=70\max(56, 80-10) = 70max(56,80โˆ’10)=70์œผ๋กœ ๋ณด์ •ํ•˜์—ฌ AI ํŒ๋‹จ์ด ํฌ๊ฒŒ ๊นŽ์ด์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ๋Š” final_categories=unique(ai_categoriesโˆชrule_categories)\text{final\_categories} = \text{unique}(\text{ai\_categories} \cup \text{rule\_categories})final_categories=unique(ai_categoriesโˆชrule_categories)๋กœ ํ•ฉ์‚ฐํ•ฉ๋‹ˆ๋‹ค. AI ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์šฐ์„  ๋ฐฐ์น˜ํ•˜๊ณ  Rule์ด ์ถ”๊ฐ€๋กœ ์žก์€ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋’ค์— ๋ถ™์ธ ๋’ค ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ตฌ์ฒด์ ์ธ ์˜ˆ์‹œ๋กœ ๋กœ์ง์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€ Rule AI ์ตœ์ข…
โ€œใ……ใ…‚ ์ง„์งœ ๋ชปํ•˜๋„คโ€ score=35, [PROFANITY] score=55, [PROFANITY, BLAME] score=49, moderate
โ€œ์™€ ์ž˜ํ•˜์‹ ๋‹ค~ใ…‹ใ…‹โ€ score=30, [MOCKERY] score=45, [MOCKERY] score=41, moderate
โ€œ์˜์ƒ ์ž˜ ๋ดค์Šต๋‹ˆ๋‹คโ€ score=0 (safe โ†’ LLM ์Šคํ‚ต) โ€” score=0, safe
โ€œ์ฃฝ์—ฌ๋ฒ„๋ฆฐ๋‹ค ใ…‹ใ…‹โ€ score=65, [THREAT] score=75, [THREAT, MOCKERY] score=72, severe
โ€œ๋ชธ๋งค ใ„ทใ„ท ์ง์บ  ๋”โ€ score=0 (Rule ๊ทœ์น™ ์—†์Œ) score=60, [SEXUAL] score=50, moderate

ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

Gemini AI์˜ ๋ถ„์„ ํ’ˆ์งˆ์€ ํ”„๋กฌํ”„ํŠธ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค. Creator Hub๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ฝ”๋“œ์—์„œ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ .md ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
prompts/templates/
โ”œโ”€โ”€ comment_tagging_system.md           โ† ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ (82์ค„)
โ”œโ”€โ”€ comment_analysis_user.md            โ† ์œ ์ € ํ”„๋กฌํ”„ํŠธ (์ž๋ง‰ ๋งฅ๋ฝ ํฌํ•จ)
โ””โ”€โ”€ comment_analysis_user_no_context.md โ† ์œ ์ € ํ”„๋กฌํ”„ํŠธ (๋งฅ๋ฝ ์—†์Œ)

์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋Š” ์—ญํ•  ์ •์˜, 10๊ฐœ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ •ํ™•ํ•œ ๋ฒ”์œ„์™€ ๊ตฌ๋ถ„ ๊ธฐ์ค€, ํ•œ๊ตญ์–ด ํŠนํ™” ๊ทœ์น™(์ดˆ์„ฑ ์š•์„คยท๋ณ€ํ˜• ํŒจํ„ดยท๋ฐ˜์–ด๋ฒ• ํƒ์ง€ ์ง€์นจ), ์ ์ˆ˜ ๋ถ€์—ฌ ๊ธฐ์ค€, ๊ตฌ์กฐํ™” ์ถœ๋ ฅ ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Gemini์˜ ์ถœ๋ ฅ์€ Pydantic ๋ชจ๋ธ(CommentTagging)๋กœ ๊ฐ•์ œ๋œ JSON ํ˜•์‹์ž…๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
{
  "toxicity_score": 55,
  "toxicity_level": "moderate",
  "categories": ["PROFANITY", "BLAME"],
  "explanation": "์ดˆ์„ฑ ์š•์„ค(ใ……ใ…‚)๊ณผ ๋Šฅ๋ ฅ ๋น„ํ•˜๊ฐ€ ๊ฒฐํ•ฉ๋œ ์•…์„ฑ ๋Œ“๊ธ€",
  "suggestion": "๋Œ“๊ธ€ ์ˆจ๊ธฐ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค"
}

ํ”„๋กฌํ”„ํŠธ๋ฅผ .md ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ํ”„๋กฌํ”„ํŠธ ํŠœ๋‹์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, LRU ์บ์‹œ๋กœ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋‘์–ด I/O ์˜ค๋ฒ„ํ—ค๋“œ๋„ ์ค„์ž…๋‹ˆ๋‹ค.


๊ฒฐ๊ณผ ๋Œ€์‹œ๋ณด๋“œ

๋ถ„์„์ด ์™„๋ฃŒ๋˜๋ฉด /result/[id] ํŽ˜์ด์ง€์—์„œ ๋‹ค์Œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ScoreGauge: SVG ๊ธฐ๋ฐ˜ ๋ฐ˜์› ๊ฒŒ์ด์ง€๋กœ ์ „์ฒด ๋…์„ฑ ์ ์ˆ˜(0~100)๋ฅผ ์‹œ๊ฐํ™”. Framer Motion์œผ๋กœ ์ ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • CategoryChart: 10๊ฐœ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ถ„ํฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋„๋„› ์ฐจํŠธ.
  • CommentCard: ๊ฐ ์•…์„ฑ ๋Œ“๊ธ€์— ๋…์„ฑ ์ ์ˆ˜ ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ”, ์นดํ…Œ๊ณ ๋ฆฌ ๋ฑƒ์ง€, AI ์„ค๋ช…, ๋Œ€์‘ ์ œ์•ˆ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • AI ์ธ์‚ฌ์ดํŠธ: Gemini๊ฐ€ ์ƒ์„ฑํ•œ ์ „์ฒด ๋Œ“๊ธ€ ๋ถ„์œ„๊ธฐ ์ข…ํ•ฉ ๋ถ„์„ ํ…์ŠคํŠธ.
  • ShareButton: ๊ณ ์œ  URL๋กœ ํŒ€/์†Œ์†์‚ฌ์™€ ๋ฆฌํฌํŠธ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

K-POP ๋ฎค์ง๋น„๋””์˜ค๋ฅผ ๋ถ„์„ํ•œ ๋ฐ๋ชจ ๊ฒฐ๊ณผ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๋…์„ฑ ์ ์ˆ˜ 35/100(mild), ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„ํฌ๋กœ FAN_WAR 8๊ฑดยทMOCKERY 5๊ฑดยทPERSONAL_ATTACK 3๊ฑด์ด ํƒ์ง€๋˜์—ˆ์œผ๋ฉฐ, AI ์ธ์‚ฌ์ดํŠธ๋กœ โ€œํŒฌ๋ค ๊ฐˆ๋“ฑ ๋Œ“๊ธ€์ด ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ, ํŠน์ • ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ธ์‹ ๊ณต๊ฒฉ์ด ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹คโ€๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๊ธฐ๋Œ€ ํšจ๊ณผ์™€ ํ–ฅํ›„ ๊ณ„ํš

Creator Hub๋Š” ํฌ๋ฆฌ์—์ดํ„ฐ์˜ ์•…์„ฑ ๋Œ“๊ธ€ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ๊ฐ„์„ 90% ์ ˆ๊ฐํ•˜๊ณ , ๊ฑด๊ฐ•ํ•œ ๋Œ“๊ธ€ ๋ฌธํ™” ์กฐ์„ฑ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. K-POP ์†Œ์†์‚ฌ ์ž…์žฅ์—์„œ๋Š” ์•„์ด๋Œ ์˜จ๋ผ์ธ ํ‰ํŒ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์‚ฌ์ด๋ฒ„ ๋ถˆ๋ง ์กฐ๊ธฐ ํƒ์ง€ ๋ฐ ๋Œ€์‘ ์ฒด๊ณ„๋กœ์„œ์˜ ์‚ฌํšŒ์  ๊ฐ€์น˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๋กœ๋“œ๋งต์œผ๋กœ๋Š” ํ˜„์žฌ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ๋ฅผ Vercel KV/Firebase๋กœ ์ „ํ™˜ํ•˜๋Š” ์˜๊ตฌ ์ €์žฅ์†Œ ๊ตฌํ˜„, ์ฑ„๋„ ๋‹จ์œ„ ์ „์ฒด ์˜์ƒ ๋Œ“๊ธ€ ์ผ๊ด„ ๋ถ„์„, ์‹ ๊ทœ ๋Œ“๊ธ€ ์ž๋™ ๊ฐ์ง€ ์•Œ๋ฆผ ์‹œ์Šคํ…œ, ์ผ๋ณธ์–ดยท์˜์–ด ๋‹ค๊ตญ์–ด ํ™•์žฅ, PDF/CSV ๋ฆฌํฌํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๋งˆ์น˜๋ฉฐ

Creator Hub๋Š” ํ•œ๊ตญ์–ด์˜ ๋ณต์žกํ•œ ์ธํ„ฐ๋„ท ์–ธ์–ด ๋ฌธํ™”๋ฅผ AI๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋„์ „์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. Rule ์—”์ง„์œผ๋กœ ๋น„์šฉ ํšจ์œจ์„ฑ์„ ํ™•๋ณดํ•˜๊ณ , Gemini AI๋กœ ๋งฅ๋ฝ์  ์ •ํ™•๋„๋ฅผ ๋†’์ด๋Š” ์ด์ค‘ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์‹ค์šฉ์ ์ธ ๋‹ต์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ๋ถ„์„์ด๋ผ๋Š” ์ข์€ ๋ฌธ์ œ์—์„œ ์ถœ๋ฐœํ–ˆ์ง€๋งŒ, ํ•œ๊ตญ์–ด ํŠนํ™” ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ยท์˜จํ†จ๋กœ์ง€ ์„ค๊ณ„ยทํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์— ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„๋“ค์—๊ฒŒ๋„ ์ฐธ๊ณ ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿพ