๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

ยฉ 2026 Molayo

Dev.toํ—ค๋“œ๋ผ์ธ2026. 06. 08. 21:25

๐Ÿš€ 2026๋…„์˜ ๋กœ์ปฌ AI (ํŒŒํŠธ 3a): ๋กœ์ปฌ AI ์—์ด์ „ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง์ ‘ ๊ตฌ์ถ•ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์€ ์–ด๋–ค ํŠœํ† ๋ฆฌ์–ผ๋ณด๋‹ค๋„ AI์— ๋Œ€ํ•ด

์š”์•ฝ

๋กœ์ปฌ ์šฐ์„ (local-first) ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง„ ์ž์œจ AI ์—์ด์ „ํŠธ 'Vibrisse Agent'์˜ ๊ตฌ์ถ• ๊ณผ์ •๊ณผ ํšŒ๊ณ ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Ollama, LangGraph, MCP ํ†ตํ•ฉ ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋‹จ์ˆœํ•œ API ๋ž˜ํผ๋ฅผ ๋„˜์–ด์„  ๊ฒฌ๊ณ ํ•œ ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ํฌ์ธํŠธ

  • Ollama์™€ vLLM์„ ํ™œ์šฉํ•œ ๋กœ์ปฌ ์šฐ์„  ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
  • MCP(Model Context Protocol)๋ฅผ ํ†ตํ•œ GitHub, SQLite ๋“ฑ ๋„๊ตฌ ํ†ตํ•ฉ
  • Gemma 4 ๊ธฐ๋ฐ˜์˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋น„์ „ ๋ฐ UI ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๊ธฐ๋Šฅ
  • ์†Œ์Šค ์ฝ”๋“œ ์ฃผ์„์—์„œ ์ง์ ‘ ๊ตฌ๋™๋˜๋Š” ๊ณ ์ŠคํŠธ ๋ชจ๋“œ ๊ตฌํ˜„

๋ชจ๋‘๊ฐ€ AI๊ฐ€ ๋‚ด ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  ์ž‘์„ฑํ•ด ์ค„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” AI์—๊ฒŒ AI ์—์ด์ „ํŠธ(AI Agent)๋ฅผ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์„ ๋„์™€๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋‹ฌ ํ›„, ๊ฐ•๋„ ๋†’์€ ์ฝ”๋”ฉ ๋‹จ๊ณ„์™€ ๊นŠ์€ ์„ฑ์ฐฐ์„ ๊ฑฐ์น˜๋ฉฐ ์ €๋Š” ๋‹ต์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‹ต์€ ์ œ๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ๊ณผ๋Š” ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ž๊ธฐ ๊ต์œก(self-education)์ด๋ผ๋Š” ๊นŠ์€ ํ•„์š”์„ฑ์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋ฐฐํ›„์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ์ œ๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๋กœ ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. AI ์—ดํ’์˜ ๋ณด๋‹›์„ ๋“ค์–ด ์˜ฌ๋ฆฌ๊ณ , "๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ (vibe coding)" ๋ฐฉ์‹์„ ๊ฑฐ๋ถ€ํ•˜๋ฉฐ, ๊ฒฌ๊ณ ํ•œ ๋กœ์ปฌ AI ์—์ด์ „ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ์„ ๋•Œ ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์ด ์ฝ๊ฒŒ ๋  ๋‚ด์šฉ์€ ๋˜ ๋‹ค๋ฅธ AI๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด AI์™€ ํ•จ๊ป˜ ํ•œ ๋‹ฌ ๋™์•ˆ ๋น„๋Œ€์นญ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ (asymmetrical pair-programming)์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์–ป์€ ๊ฐ€๊ฐ ์—†๊ณ  ์†”์งํ•œ ํšŒ๊ณ ๋ก์ž…๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ๋ฌด์—‡์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ์š”? (ํ”„๋กœ์ ํŠธ)

๋งฅ๋ฝ์„ ์„ค๋ช…ํ•˜์ž๋ฉด, Vibrisse Agent๋Š” ๋‹จ์ˆœํ•œ ์ฑ„ํŒ…์ด๋‚˜ ํ„ฐ๋ฏธ๋„์˜ ๋˜ ๋‹ค๋ฅธ API ๋ž˜ํผ (API wrapper)๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "๋กœ์ปฌ ์šฐ์„  (local-first)" ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋กœ ์„ค๊ณ„๋œ ์ž์œจ ์—์ด์ „ํŠธ (autonomous agent, Python / LangGraph)์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ (Ollama ๋˜๋Š” vLLM์„ ํ†ตํ•ด โ€” *์ฐธ๊ณ : Mac ์‚ฌ์šฉ์ž๋ผ๋ฉด oMLX๊ฐ€ ์ •๋ง ์ตœ๊ณ ์ž…๋‹ˆ๋‹ค! ๐Ÿ”ฅ_), ๋ณต์žก๋„์— ๋”ฐ๋ผ ํŠน์ • ์ž‘์—…์„ ํด๋ผ์šฐ๋“œ (Groq, OpenRouter)๋กœ ๋™์ ์œผ๋กœ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์–‘์€ ์•ผ์‹ฌ ์ฐผ์Šต๋‹ˆ๋‹ค:

  • MCP (Model Context Protocol) ํ†ตํ•ฉ: ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„์˜ ์‹ค์ œ ๋„๊ตฌ๋“ค๊ณผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์™€ PR์„ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ GitHub, ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฟผ๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ SQLite, ์ตœ์‹  ๋ฌธ์„œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ Context7, ๊ทธ๋ฆฌ๊ณ  ์›น๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ Fetch๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋น„์ „ (Multimodal vision): (Gemma 4์™€ ํ•จ๊ป˜) UI๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜จ๋ณด๋”ฉ ์œ„์ €๋“œ (Onboarding Wizard): ๋™์ ์ธ ํ”„๋กฌํ”„ํŒ… (prompting) ์‹œ์Šคํ…œ๊ณผ ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค.

Vibrisse Agent - Choose Your Persona

  • ๋ฌด์—‡๋ณด๋‹ค๋„, ๊ณ ์ŠคํŠธ ๋ชจ๋“œ (Ghost Mode): ์†Œ์Šค ์ฝ”๋“œ ์ฃผ์„(// @vibrisse: refactor this loop)์—์„œ ์ง์ ‘ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋•๋ถ„์—, ๋” ์ด์ƒ ์ฐฝ์„ ์ „ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•œ ๋ฐ๋ชจ๊ฐ€ ์•„๋‹ˆ๋ผ ์ง„์งœ "์ œํ’ˆ (product)"์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋Š” ์ด๋Ÿฌํ•œ ์š”๊ตฌ ์ˆ˜์ค€์ด ๋ฐ”๋กœ ์ €์˜ ์ดˆ๊ธฐ ๊ฐ€์„ค๋“ค์„ ์™„์ „ํžˆ ๊นจ๋œจ๋ ค ๋†“์•˜์Šต๋‹ˆ๋‹ค.

"๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ (Vibe Coding)"์˜ ์‹ ํ™”

ํ˜„์žฌ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒƒ์€ ์˜ค์ง ํ”„๋กฌํ”„ํŒ… (prompting)๋ฟ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋„๋ฆฌ ํผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ "๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ (vibe coding)"์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด AI๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ฑ‰๊ณ , "์‹คํ–‰"์„ ํด๋ฆญํ•˜๋ฉด ๋ถ โ€” SaaS๊ฐ€ ํƒ„์ƒํ•˜๋Š” ์‹์ด์ฃ .

์ง„์‹ค์€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋‹จ์ˆœํ•œ CRUD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ๋ฉด ๊ทธ ๋ง์ด ์ „์ ์œผ๋กœ ๋งž์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—„๊ฒฉํ•œ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ (context management), ๊ฒฐ์ •๋ก ์  ๋„๊ตฌ ์‹คํ–‰ (deterministic tool execution), ๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ ์ง€์†์„ฑ (state persistence)์ด ํ•„์š”ํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์ˆœ๊ฐ„... ๊ทธ "๋ฐ”์ด๋ธŒ (vibe)"๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ง๋ฉดํ•œ ์ฃผ์š” ๋ฌธ์ œ๋Š” ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ (context management) (๊ทธ ์œ ๋ช…ํ•œ "์ค‘๊ฐ„์—์„œ์˜ ์ƒ์‹ค (Lost in the Middle)")์˜€์Šต๋‹ˆ๋‹ค. ๋จธ๋ฆฟ์†์— ๋– ์˜ค๋ฅด๋Š” ์งˆ๋ฌธ๋“ค์„ AI์—๊ฒŒ ์—ฐ์‡„์ ์œผ๋กœ ๋˜์ง€๋ฉฐ ํ๋ฆ„์— ๋ชธ์„ ๋งก๊ธฐ๊ธฐ๋Š” ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ์งœ๋ฆฟํ•œ ๊ฒฝํ—˜์ด์ง€๋งŒ, ๋Œ€ํ™” ์†์— ์—„์ฒญ๋‚œ ์–‘์˜ "๋…ธ์ด์ฆˆ (noise)"๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋“œ๋ ˆ์ผ (guardrails)์ด ์—†๋‹ค๋ฉด ๊ฒฐ๊ตญ ๋ง‰๋Œ€ํ•œ ์ปจํ…์ŠคํŠธ ์†์‹ค์„ ๊ฒช๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ๋‘ ์‹œ๊ฐ„ ์ „์— ๊ฒฐ์ •๋œ ์‚ฌํ•ญ์„ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ , ์„ธ์…˜์€ ํ‘œ๋ฅ˜ํ•˜๋ฉฐ, ์ฝ”๋“œ๋Š” ๊นจ์ ธ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ๋งˆ๋ฒ• ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์ด ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์—„์ฒญ๋‚œ ์–‘์˜ ๊ทœ์œจ๊ณผ ์ˆœ์ˆ˜ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง (software engineering)์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์—„๊ฒฉํ•œ ์„ธ์…˜ ํŒŒ์ผ (ROADMAP.md), ์ง€์†์ ์ธ ๋ฉ”๋ชจ, ๊ทธ๋ฆฌ๊ณ  ๋ช…์‹œ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ์ถ”์  (architectural tracking)์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์™œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ๋งŒ๋“œ๋Š”๊ฐ€?

์—ฌ๋Ÿฌ๋ถ„์€ ์•„๋งˆ ์ด๋ ‡๊ฒŒ ๊ถ๊ธˆํ•ดํ•˜์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค: Cursor, Copilot, ๊ทธ๋ฆฌ๊ณ  ์ด์ œ๋Š” Claude Code๊นŒ์ง€ ์กด์žฌํ•˜๋Š”๋ฐ, ์™œ ๊ตณ์ด ๋ฐ”ํ€ด๋ฅผ ๋‹ค์‹œ ๋ฐœ๋ช…ํ•˜๋ ค ํ•˜๋Š”๊ฐ€?

์†”์งํ•œ ๋‹ต๋ณ€์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค: ๊ธฐ์ €์— ๊น”๋ฆฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (mechanics)์— ๋Œ€ํ•ด ๋ˆˆ์„ ๊ฐ์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ๊ตฌ์ถ•ํ•  ๋•Œ ์–ป๋Š” ์ง„์งœ ์ด์ ์€ ๋ฌด์–ธ๊ฐ€ ๊ณ ์žฅ ๋‚ฌ์„ ๋•Œ (๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์ž์ฃผ ๊ณ ์žฅ ๋‚ฉ๋‹ˆ๋‹ค), ์™œ ๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์–ด๋–ป๊ฒŒ ๊ณ ์ณ์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ฒŒ ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋‹จ, ํ•œ ๊ฐ€์ง€ ์—„๊ฒฉํ•œ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ๋ชจ๋“  ์ค„, ํŒจํ„ด, ๊ทธ๋ฆฌ๊ณ  ๋กœ์ง์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. AI์˜ ์ œ์•ˆ์— ์ด์˜๋ฅผ ์ œ๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋Ÿฌํ•œ ๊ด€์ ์ด ์—†๋‹ค๋ฉด, ๋‹น์‹ ์€ ์ œ๊ฐ€ **"ํ—ฌ ๋ฃจํ”„ (hell loops)"**๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ƒํ™ฉ์— ๋น ๋ฅด๊ฒŒ ๋น ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, AI๋Š” ์ž์‹ ์˜ ์ปจํ…์ŠคํŠธ ์˜ค๋ฅ˜ (context errors)๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ๋ฑ…๋ฑ… ๋Œ๊ธฐ๋งŒ ํ•˜๊ณ , ์ธ๊ฐ„์€ ๊ฒฐ๊ตญ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ๋ฅผ ํฌ๊ธฐํ•˜๊ฒŒ ๋˜๋Š” ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌด๋„ ์ธ์ •ํ•˜์ง€ ์•Š๋Š” ์‚ฌ์‹ค:
AI๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ์ด ํ”„๋กœ์ ํŠธ๋Š” ์ง€๊ธˆ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €์—๊ฒŒ๋Š” ์ด๋ ‡๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•  ์‹œ๊ฐ„๋„, Python์— ๋Œ€ํ•œ ๊นŠ์€ ๊ธฐ์ดˆ ์ง€์‹๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. AI (์ €์˜ ๊ฒฝ์šฐ Gemini)์™€ ํ˜‘์—…ํ•จ์œผ๋กœ์จ, ์ €๋Š” ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๋Š” ๊ธฐ์ˆ ์  ๋งˆ์ฐฐ (technical friction) ๋Œ€์‹  **๋น„์ „๊ณผ ์•„ํ‚คํ…์ฒ˜ (vision and architecture)**์— ์˜จ์ „ํžˆ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. LLM (Large Language Model)์€ ๊ณ ๋ฆฝ๋œ ํ•จ์ˆ˜ (isolated functions)๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” ํƒ์›”ํ•˜์ง€๋งŒ, ์ „์—ญ ์•„ํ‚คํ…์ฒ˜ (global architecture)๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ๋Š” ์žฌ์•™์ ์ธ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ์ €์˜ 15๋…„ ์›น ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์—†์—ˆ๋‹ค๋ฉด, ์ด ํ”„๋กœ์ ํŠธ๋Š” ์™„์ „ํžˆ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ 3,000์ค„์งœ๋ฆฌ ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ์ธ main.py ํŒŒ์ผ๋กœ ๋๋‚ฌ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์›€์„ ๋ฐ›๋Š” ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ์‚ฌ์ด๋งˆ๋‹ค, ์ €๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ตœ์‹  ์ƒํƒœ (state of the art)๋กœ ์œ ์ง€ํ•˜๊ณ  ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์—„๊ฒฉํ•œ "์ •๋ฆฌ" ๋ฐ ๋ฆฌํŒฉํ„ฐ๋ง (refactoring) ๋‹จ๊ณ„ (๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ (separation of concerns), SOLID ์›์น™)๋ฅผ ๊ฐ•์ œ๋กœ ์ ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. AI๊ฐ€ ์„œ๋‘˜๋Ÿฌ "ํŒจ์น˜ (patched)"ํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์“ฐ๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์†์„ ๋”๋Ÿฝํ˜€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์ž์ฃผ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

์˜ค๋Š˜๋‚  ๋Œ€๋‹ค์ˆ˜์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ AI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (Stack Overflow์— ๋”ฐ๋ฅด๋ฉด ์•ฝ 76%). ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‘ ๊ฐ€์ง€ ๊ฑฐ์ง“๋ง์ด ์œ ํฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  1. "AI๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ํ•˜๋ฏ€๋กœ, ๋‹น์‹ ์€ ์•„๋ฌด๊ฒƒ๋„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค."
  2. "์ง„์ •ํ•œ ๊ฐœ๋ฐœ์ž๋Š” AI๊ฐ€ ํ•„์š” ์—†๋‹ค."

ํ˜„์‹ค์€ ๊ฒฝํ—˜์ด ํ˜‘์—…์„ ์ƒ์‚ฐ์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ๊ณ , ๊ทธ ํ˜‘์—…์ด ๊ฒฝํ—˜์„ ์ƒˆ๋กœ์šด ๋„๋ฉ”์ธ์— ์ ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งˆ๋ฒ•์ด ์•„๋‹ˆ๋ผ, ์Šค๋งˆํŠธํ•œ ์—”์ง€๋‹ˆ์–ด๋ง (smart engineering)์ž…๋‹ˆ๋‹ค.

๋น„๋Œ€์นญ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Asymmetrical Pair-Programming): ๊ทธ๋“ค์ด ๋งํ•ด์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ

AI์™€ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Pair-programming)์„ ํ•  ๋•Œ, ๊ทธ ์—ญํ•™ ๊ด€๊ณ„๋Š” ๋งค์šฐ ๋น„๋Œ€์นญ์ ์ž…๋‹ˆ๋‹ค.

AI๋Š” ๋ฌด์ฐจ๋ณ„์ ์ธ ํž˜ (Brute force)์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. AI๋Š” ์ฆ‰๊ฐ์ ์œผ๋กœ ํŒŒ์ผ์„ ์ฝ๊ณ , ๋ช‡ ์ดˆ ๋งŒ์— ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ (Boilerplate) ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ์ง€์น˜์ง€ ์•Š๊ณ  ๋ฌธ์„œ๋ฅผ ํŒŒํ—ค์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž์ธ ๋‹น์‹ ์€ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๊ฑฐ๋ถ€๊ถŒ (Architectural veto)๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋น„์ „์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ดํ•ดํ•ด์•ผ ํ•  ํ•œ ๊ฐ€์ง€ ํ•„์ˆ˜์ ์ธ ์‚ฌ์‹ค์€, ํด๋ผ์šฐ๋“œ AI (Cloud AI)๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์ˆ˜์šฉ์ ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. AI๋Š” ๋‹น์‹ ์ด ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ข…์ข… "๊ณผ๋„ํ•˜๊ฒŒ ์˜์š•์ "์ž…๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ œ๊ฐ€ ๊ธฐ์ˆ ์ ์ธ ๋ฒฝ์— ์ง๋ฉดํ–ˆ์„ ๋•Œ, ์ €๋Š” ์ˆœ์ˆ˜ํ•œ ๊ฐœ๋ฐœ์ž์˜ ํƒœ๋„์—์„œ ๋ฒ—์–ด๋‚˜ AI์™€ ๋…ผ์˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” AI์—๊ฒŒ ์—„๊ฒฉํ•œ ์—ญํ• ("๋‹น์‹ ์€ ์ˆ™๋ จ๋œ AI ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹ค...")์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ทธ ์ ‘๊ทผ ๋ฐฉ์‹์— ์ด์˜๋ฅผ ์ œ๊ธฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ์ž ๊ฐ‘์ž๊ธฐ "๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋‹ต๋ณ€์ด ๋Œ€์•ˆ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ด๊ณ  ์œ ์˜๋ฏธํ•œ ๋ถ„์„์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ–ˆ๋˜ ๊ทœ์œจ์€ "์ƒ๊ฐ์„ ์†Œ๋ฆฌ ๋‚ด์–ด ๋งํ•˜๊ธฐ (Thinking out loud)" ์„ธ์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์—, AI์—๊ฒŒ ์ง€๊ธˆ๊นŒ์ง€ ๋ฌด์—‡์„ ํ–ˆ๋Š”์ง€, ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ธ์ง€ ์š”์•ฝํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”. ๊ทธ ์˜ํ–ฅ(Impacts)์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜์„ธ์š”. ์ˆœ์ˆ˜ํ•œ ์ฝ”๋“œ์—์„œ ํ•œ ๊ฑธ์Œ ๋ฌผ๋Ÿฌ๋‚˜ ๋น„์ „์— ์ง‘์ค‘ํ•˜๊ณ , ๋‚˜์˜ ์ƒ๊ฐ์„ AI์—๊ฒŒ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"์ธ๊ฐ„ ์ฐธ์—ฌํ˜• (Human-in-the-Loop)"๊ณผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์•„ํ‹ฐํŒฉํŠธ (Interactive Artifacts)

๊ฐ€์žฅ ํฐ ๊นจ๋‹ฌ์Œ ์ค‘ ํ•˜๋‚˜๋Š” ์ž์œจ ์—์ด์ „ํŠธ (Autonomous agent)๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ํ˜ผ์ž์„œ ๋‹ค ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์€ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ž‘์—…(์•„ํ‚คํ…์ฒ˜๋ฅผ ์žฌ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€)์„ ์œ„ํ•ด, ์ €๋Š” "์•„ํ‚คํ…ํŠธ (Architect)" ๋ชจ๋“œ๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— 500์ค„์˜ ์ฝ”๋“œ๋ฅผ ์Ÿ์•„๋‚ด๋Š” ๋Œ€์‹ , "์•„ํ‹ฐํŒฉํŠธ (Artifact)"์— ๋‹ด๊ธด ์ƒ์„ธํ•œ ๊ณ„ํš์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฅผ ๊ฐ€๋กœ์ฑ„ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ , ์Šน์ธ ๋ฒ„ํŠผ์ด ํฌํ•จ๋œ ๊น”๋”ํ•œ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋ Œ๋”๋ง (Interactive render)์„ ์ €์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Vibrisse Agent - Artifact Mode

๊ทธ๊ณณ์—์„œ ๋งˆ๋ฒ•์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋„๊ตฌ(tools)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—, ์ €๋Š” ๊ทธ ๊ณ„ํš์„ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์— ํ†ตํ•ฉ๋œ ์ด ๊ฑฐ๋ถ€๊ถŒ(veto right)์€ ๋ชจ๋“  ๊ฒƒ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ง๊ฐ€๋œจ๋ฆฌ๋Š” "๋ธ”๋ž™๋ฐ•์Šค (black box)" AI์—์„œ, ์ดˆ์•ˆ์„ ์ œ์ถœํ•˜๋Š” ์ง„์ •ํ•œ ๋™๋ฃŒ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์ค‘ ํ•™์Šต ๊ณก์„  (์•„๋ฌด๋„ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„)

์ด ์—ฌ์ •์—์„œ ์–ป์€ ๊ฐ€์žฅ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํ†ต์ฐฐ์€ AI๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด AI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๊ฐ€๋ฅด์ณ ์ค€๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

ํ•œ ๋‹ฌ๊ฐ„์˜ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋™์•ˆ, ๋‘ ๊ฐœ์˜ ํ‰ํ–‰ํ•œ ํ•™์Šต ๊ณก์„ ์ด ๋™์‹œ์— ํŽผ์ณ์กŒ์Šต๋‹ˆ๋‹ค.

์—”์ง€๋‹ˆ์–ด๋ง ์ธก๋ฉด์—์„œ๋Š”, ๋ชจ๋ธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:

  • ์‹ ์„ ํ•˜๊ณ  ์ •ํ™•ํ•œ ์ปจํ…์ŠคํŠธ (๋„ˆ๋ฌด ๋งŽ์ง€๋„, ์•„๋ฌด๊ฒƒ์ด๋‚˜ ๋˜์–ด์„œ๋„ ์•ˆ ๋จ).
  • ๋ชจ๋ธ์ด ๊ฒฝ๋กœ๋ฅผ ์ดํƒˆํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ช…์‹œ์ ์ธ ์ œ์•ฝ ์กฐ๊ฑด (explicit constraints).
  • 2์‹œ๊ฐ„ ์ „์— ๋‚ด๋ฆฐ ๊ฒฐ์ •์„ "๋ง๊ฐ"ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ •๊ธฐ์ ์ธ ์š”์•ฝ.
  • ๊น”๋”ํ•œ ๋ชจ๋“ˆํ™” (modularity)๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๋น„์ „.

์‚ฌ์šฉ์ž ์ธก๋ฉด์—์„œ๋Š”, ๊ฒฐ๊ตญ ์ž์‹ ์—๊ฒŒ๋„ ์ •ํ™•ํžˆ ๋˜‘๊ฐ™์€ ๊ทœ์œจ์„ ์ ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:

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

_"๋งฅ๋ฝ์„ ์ ˆ๋Œ€ ๋†“์ณ์„œ๋Š” ์•ˆ ๋˜๋Š” ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•จ์œผ๋กœ์จ, ๋‚˜๋Š” ๋งˆ์นจ๋‚ด ๋‚ด๊ฐ€ AI๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์™œ ๋งฅ๋ฝ์„ ๋†“์ณค๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค."

๋ฌผ๋ก  ์Šค์Šค๋กœ๋ฅผ ํ›ˆ๋ จ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ๋ฆฌ์†Œ์Šค๋“ค์€ ์กด์žฌํ•˜์ง€๋งŒ, ์„ธ์…˜์ด ํƒˆ์„ ํ•  ๋•Œ ๋Œ€์ฒ˜ํ•˜๋Š” ๋ณธ๋Šฅ์€ ์˜ค์ง ์ง์ ‘ ๊ตฌ์ถ•ํ•ด ๋ด„์œผ๋กœ์จ๋งŒ ์ง„์ •์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ์€ ์„ค๊ณ„๋ถ€ํ„ฐ ๊ฒŒ์œผ๋ฅด๋‹ค

์šฐ๋ฆฌ๋Š” "์•„ํ‚คํ…ํŠธ AI (Architect AI)" (๋‚ด๊ฐ€ ์ฝ”๋”ฉํ•  ๋•Œ ์‚ฌ์šฉํ•œ Gemini)์™€ "์›Œ์ปค AI (Worker AI)" (๋‚ด๊ฐ€ Vibrisse์— ํ†ตํ•ฉํ•œ ๋กœ์ปฌ Gemma e4b / 26b ๋ชจ๋ธ)๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…ํŠธ AI๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํƒ์›”ํ•˜๋‹ค๋ฉด, ๋กœ์ปฌ ์›Œ์ปค AI๋Š” ์„ค๊ณ„๋ถ€ํ„ฐ ๊ฒŒ์œผ๋ฆ…๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด์ด ์—†๋‹ค๋ฉด, ๊ฑฐ๋Œ€์–ธ์–ด๋ชจ๋ธ (LLM)์€ ์ €ํ•ญ์ด ๊ฐ€์žฅ ์ ์€ ๊ฒฝ๋กœ๋ฅผ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์ธ ๋ฐœ๊ฒฌ: ๋งŒ์•ฝ 7B ๋ชจ๋ธ์„ ์—„๊ฒฉํ•œ ๊ฐ€๋“œ๋ ˆ์ผ (guardrails) ์—†์ด ๋ฐฉ์น˜ํ•œ๋‹ค๋ฉด, ๊ทธ ๋ชจ๋ธ์€ ๊ฒฐ๊ตญ ์ƒˆ๋ฒฝ 3์‹œ์— // ... rest of the code here๋ผ๊ณ  ์ž‘์„ฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค, ์ด๋Š” ํด๋ผ์šฐ๋“œ (Cloud) ๋ชจ๋ธ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค! ํŠนํžˆ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ (context window)๊ฐ€ ํฌํ™” ์ƒํƒœ๊ฐ€ ๋  ๋•Œ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ˆœ์‘์„ฑ๊ณผ ๊ฒฐํ•ฉ๋œ ์ด๋Ÿฌํ•œ ๊ฒŒ์œผ๋ฆ„์€, ๋‹น์‹ ์ด ํ๋ฆ„์„ ๋†“์น  ๋•Œ๊นŒ์ง€ AI๊ฐ€ ๋‹น์‹  ์—†์ด๋„ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•˜๋„๋ก ๋ฐฉ์น˜ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒŒ์œผ๋ฆ„์— ๋Œ€ํ•œ ํ•ด๋‹ต์€ ์ดˆ๊ตฌ์กฐํ™”๋œ ํ”„๋กฌํ”„ํŠธ (ultra-structured prompts)์ž…๋‹ˆ๋‹ค. ๊ฒฝํ—˜์€ ์—ฌ์ „ํžˆ ๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. AI ๋Œ€์‹  ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, AI๊ฐ€ ์ •ํ™•ํžˆ ์–ธ์ œ ์‹คํŒจํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ ๋ง์ž…๋‹ˆ๋‹ค.

(๋‹ค์Œ ๊ธฐ์‚ฌ 5b์—์„œ๋Š” ๊ฒฌ๊ณ ํ•œ 3๊ณ„์ธต ํŒŒ์‹ฑ (3-layer parsing)์„ ํ†ตํ•ด ์šฐ๋ฆฌ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์„ธ์š”.)

UX/UI์˜ ๊ฒฐ์ •์  ์ค‘์š”์„ฑ

๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๊ตํ›ˆ์€, ์—์ด์ „ํŠธ (agent)๋ฅผ ๋งŒ๋“ค ๋•Œ UX์™€ UI๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์‘๋‹ต์ด ํด๋ผ์šฐ๋“œ (Cloud)๋ณด๋‹ค ๋œ "์ฆ‰๊ฐ์ "์ผ ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ๋Œ€ํ•œ์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋™์ž‘์—๋Š” ๋ˆˆ์— ๋ณด์ด๋Š” ๋ฐ˜์‘์ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ์ถฉ๋Œํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์œ ๋™์ ์ธ ๋А๋‚Œ์„ ์กฐ์„ฑํ•˜๊ณ , ์ฝ๊ธฐ ํŽธ์•ˆํ•จ์„ ๋ฐฐ๋ คํ•˜๋ฉฐ, ์˜ค๋ฅ˜๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ... ์ข‹์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ(์ œ๊ฐ€ Vibrisse์—์„œ ๊ตฌํ˜„ํ•œ ๋Œ€ํ™”ํ˜• _Thought Graph_์™€ ๊ฐ™์€ ๋ฐฉ์‹)์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ†ตํ•ด AI์˜ ๊ธฐ๊ณ„์  ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Š” ์ƒํ˜ธ์ž‘์šฉ์„ ์žฌ๊ณ ํ•˜๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๋‹น์‹ ์˜ IDE ์˜†์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ฑ—๋ด‡ (chatbot)์ด ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์—์ด์ „ํŠธ๊ฐ€ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋˜์–ด ๋‹น์‹ ์˜ ์›Œํฌํ”Œ๋กœ (workflow)์— ํ†ตํ•ฉ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ œ๊ฐ€ "๊ณ ์ŠคํŠธ ๋ชจ๋“œ (Ghost Mode)"๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค).

์ง์—…์˜ ํ˜„์ฃผ์†Œ: ์ฃฝ์ง€๋„ ์•Š์•˜๊ณ  ๋ณ€ํ•˜์ง€ ์•Š์€ ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค

๊ฐœ๋ฐœ์ž๋“ค์ด ์‚ฌ๋ผ์งˆ๊นŒ์š”? ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง์—…์˜ ์„ฑ๊ฒฉ์ด ๋ณ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ™˜ํฌ์˜ ๋‹จ๊ณ„๋ฅผ ์ง€๋‚˜ ์„ฑ์ˆ™์˜ ๋‹จ๊ณ„๋กœ ์ง„์ž…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AI๋Š” ๋” ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋Š” ๋” ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์œผ๋กœ ์ด์–ด์ง€๋ฉฐ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์•„ํ‚คํ…ํŠธ (architect) ๊ฐœ๋ฐœ์ž์— ๋Œ€ํ•œ ์—„์ฒญ๋‚œ ์ˆ˜์š”๋ฅผ ์ฐฝ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ **์ฝ”๋“œ์— ์ ์šฉ๋œ ์ œ๋ฒˆ์Šค์˜ ์—ญ์„ค (Jevons Paradox)**์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ƒ์‚ฐ์„ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์ˆ˜๋ก, ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ˆ˜์š”๋Š” ํญ๋ฐœ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž ํ”„๋กœํ•„์€ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ํƒ€์ดํ•‘ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜(Orchestrate)ํ•˜๊ณ , ๋„์ „ํ•˜๋ฉฐ, ๊ฒ€์ฆ(Validate)ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก : ๋งˆ๋ฒ•์ด ์•„๋‹Œ ๋„๊ตฌ๋กœ์„œ์˜ AI

์ฃผ๋ณ€์˜ ์†Œ์Œ๋“ค์— ๋Œ€ํ•ด ์†”์งํ•˜๊ฒŒ ๋‹ตํ•ด๋ด…์‹œ๋‹ค. _"๋‚˜๋Š” 2์ผ ๋งŒ์— ๋‚ด SaaS๋ฅผ ์ฝ”๋”ฉํ–ˆ๋‹ค, ๊ฐœ๋ฐœ์ž๋Š” ๋๋‚ฌ๋‹ค"_๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ง์ด์ฃ :

"๊ทธ๋Ÿด์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ์•„์ง ๋ชจ๋“  ๊ฒƒ์„ ๋ง๊ฐ€๋œจ๋ฆฌ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š์•˜์„ ๋ฟ์ž…๋‹ˆ๋‹ค."

AI๋กœ CRUD๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋น ๋ฆ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ปจํ…์ŠคํŠธ(Context)๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํ™˜๊ฐ(Hallucination)์„ ์ผ์œผํ‚ค์ง€ ์•Š์œผ๋ฉฐ, ๋ชจ๋ธ์˜ ๋™์ž‘์ด ๋ณ€ํ•  ๋•Œ๋„ ๊ฒฌ๋ŽŒ๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ(Production system)์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ์ „ํ˜€ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ(Error handling), ์„ฑ๋Šฅ ์ตœ์ ํ™”(Performance optimization), ๋จธ์‹  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ(RAM/VRAM)... ์˜ค์ง ๊ฒฝํ—˜๋งŒ์ด ๊ฐ€์ ธ๋‹ค์ค„ ์ˆ˜ ์žˆ๋Š” ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ๋“ค์ด ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.

AI ์ž๋™ ์ƒ์„ฑ ์ฝ˜ํ…์ธ 

๋ณธ ์ฝ˜ํ…์ธ ๋Š” Dev.to AI tag์˜ ์›๋ฌธ์„ AI๊ฐ€ ์ž๋™์œผ๋กœ ์š”์•ฝยท๋ฒˆ์—ญยท๋ถ„์„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์› ์ €์ž‘๊ถŒ์€ ์›์ €์ž‘์ž์—๊ฒŒ ์žˆ์œผ๋ฉฐ, ์ •ํ™•ํ•œ ๋‚ด์šฉ์€ ๋ฐ˜๋“œ์‹œ ์›๋ฌธ์„ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

์›๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
0

๋Œ“๊ธ€

0