โ† ๋ชฉ๋ก์œผ๋กœ
ENGINEERING NOTE21 ๋ถ„ ์ฝ๊ธฐ

๐Ÿ’ฌ ChatGPT๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ• โ€” Luna Chat Coder ์ ์šฉ๊ธฐ

ChatGPT์˜ ์ผ๋ฐ˜ ๋Œ€ํ™”์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐœ๋ฐœ์„ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Luna Chat Coder๋ฅผ ์‹ค์ œ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ์— ์ ์šฉํ•œ ๊ณผ์ •๊ณผ ์„ค๊ณ„ ์›์น™์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Luna Chat Coder
ChatGPT
AI Agent
GitHub
Developer Experience
Cloud Native

๋“ค์–ด๊ฐ€๋ฉฐ

์ตœ๊ทผ์—๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค AI์—๊ฒŒ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•˜๊ฒŒ ๋งก๊ธธ ๊ฒƒ์ธ๊ฐ€๊ฐ€ ๋” ์ค‘์š”ํ•œ ๋ฌธ์ œ๊ฐ€ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ChatGPT ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋Œ€ํ™”ํ˜• AI๋ฅผ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด๋Ÿฐ ์š”๊ตฌ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

"์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณด๊ณ  ์ˆ˜์ •ํ•ด์ค˜. ํ…Œ์ŠคํŠธํ•˜๊ณ  GitHub์— ๋ฐ˜์˜๊นŒ์ง€ ํ•ด์ค˜."

๋ฌธ์ œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋Œ€ํ™”๋งŒ์œผ๋กœ๋Š” ์˜๋„(intent)์™€ ์ •ํ™•ํ•œ ์†Œ์Šค ์ƒํƒœ(source state), ์‹คํ–‰ ํ™˜๊ฒฝ(execution environment), ๊ฒฐ๊ณผ์˜ ์˜์†์„ฑ(durability)์„ ๋ชจ๋‘ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋Œ€ํ™” ์ปจํ…์ŠคํŠธ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๊ณ , ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ดˆ๊ธฐํ™”๋  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, GitHub API๋‚˜ Actions ์‚ฌ์šฉ์— ์ œ์•ฝ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ด๋Ÿฐ ์ œ์•ฝ์ด ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋ชจ๋“  ์ž‘์—…์„ GitHub Actions์—์„œ ์‹คํ–‰ํ•˜๋„๋ก ๋งŒ๋“ค๋ฉด ๋ถˆํ•„์š”ํ•œ ์›๊ฒฉ ์‹คํ–‰ ๋น„์šฉ๊ณผ ๋ณต์žก์„ฑ์ด ์ƒ๊น๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ตœ๊ทผ Luna Chat Coder๋ฅผ ๋งŒ๋“ค๊ณ , ์‹ค์ œ ์šด์˜ ์ค‘์ธ ์ œ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์ €์žฅ์†Œ์ธ dasomel.github.io์— ์ ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” Luna ์ž์ฒด์˜ ์‚ฌ์šฉ๋ฒ•๋ณด๋‹ค ์™œ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ , ์‹ค์ œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ์ ์šฉํ–ˆ๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.


1. Luna Chat Coder๋ž€?

Luna Chat Coder๋Š” ChatGPT์˜ ์ผ๋ฐ˜์ ์ธ ๋Œ€ํ™” ํ™˜๊ฒฝ์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  repository-local agent skill์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

Chat
  โ†“
Sandbox-first development
  โ†“
์ •ํ™•ํ•œ GitHub state ํ™•์ธ
  โ†“
ํ•„์š”ํ•  ๋•Œ๋งŒ GitHub Actions fallback
  โ†“
๊ฒ€์ฆ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๊ฒฝ๋กœ๋กœ ๊ฒŒ์‹œ

์ฆ‰, AI์—๊ฒŒ ๋ณ„๋„์˜ ๊ฑฐ๋Œ€ํ•œ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋Œ€ํ™”ํ˜• ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐ˜๋ณตํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹คํŒจ ํŒจํ„ด์„ ์ €์žฅ์†Œ ์ž์ฒด์˜ ์ •์ฑ…์œผ๋กœ ๊ณ ์ •ํ•˜๋Š” ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค.

Luna์˜ ๊ธฐ๋ณธ ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Discover early, activate late โ€” skill์€ ๋จผ์ € ๋ฐœ๊ฒฌํ•˜๋˜ Actions๋Š” ํ•„์š”ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ
  • Exact state first โ€” ์ž‘์—… ์ „์— ์ •ํ™•ํ•œ commit/PR/branch ์ƒํƒœ๋ฅผ ์‹๋ณ„
  • Sandbox first โ€” ์ผ๋ฐ˜์ ์ธ ์ˆ˜์ •ยท๋นŒ๋“œยทํ…Œ์ŠคํŠธ๋Š” disposable sandbox์—์„œ ์ˆ˜ํ–‰
  • Capability inventory โ€” ์ƒˆ ๋„๊ตฌ๋‚˜ ์˜์กด์„ฑ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์ „์— ํ˜„์žฌ ํ™˜๊ฒฝ์˜ capability ํ™•์ธ
  • GitHub as durable source of truth โ€” ๋Œ€ํ™” ๋‚ด์šฉ๋ณด๋‹ค ์‹ค์ œ Git state๋ฅผ ์šฐ์„ 
  • Exact publication โ€” ๋ณ€๊ฒฝ ๊ทœ๋ชจ์™€ ํŠน์„ฑ์— ๋”ฐ๋ผ ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ์ •ํ™•ํ•œ ๊ฒŒ์‹œ ๊ฒฝ๋กœ ์„ ํƒ
  • Evidence-based completion โ€” ์‹ค์ œ ์‹คํ–‰ํ•œ ๊ฒ€์ฆ๋งŒ ์™„๋ฃŒ ๊ฒฐ๊ณผ๋กœ ๋ณด๊ณ 

Luna๋Š” ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด๋‚˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ๋Œ€์‹  ๊ฒฐ์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ฏธ ๊ฐ€์ง„ ๊ทœ์น™์„ ์ตœ๋Œ€ํ•œ ์ถฉ์‹คํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ continuity/fallback layer์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.


2. ์™œ ๊ธฐ์กด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ ์šฉํ–ˆ๋Š”๊ฐ€?

์ œ๊ฐ€ ์šด์˜ํ•˜๋Š” dasomel.github.io๋Š” ๋‹จ์ˆœํ•œ Markdown ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ˜„์žฌ Next.js 15 + next-intl ๊ธฐ๋ฐ˜์˜ static site์ด๋ฉฐ GitHub Pages๋ฅผ ํ†ตํ•ด cne.io.kr๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๋Š” app/[locale]/{posts,projects,docs,seminars,events}/[slug] ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , npm run build์™€ npm run lint๋ผ๋Š” ๊ธฐ์กด ๊ฒ€์ฆ ํ๋ฆ„๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์ €์žฅ์†Œ์—๋Š” ์ด๋ฏธ CLAUDE.md๋ฅผ ๋น„๋กฏํ•œ ํ”„๋กœ์ ํŠธ ๊ณ ์œ  ์šด์˜ ๊ทœ์น™๊ณผ ์—ฌ๋Ÿฌ GitHub Actions workflow๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด AI ๊ฐœ๋ฐœ ๊ทœ์น™์„ ๋„์ž…ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ฒฝ๊ณ„ํ•œ ๊ฒƒ์€ ๊ธฐ์กด workflow๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ Luna๋ฅผ ์ ์šฉํ•  ๋•Œ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ญํ• ์„ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

CLAUDE.md
  โ””โ”€ ํ”„๋กœ์ ํŠธ ๊ณ ์œ  ์šด์˜ ์ง€์‹
 
AGENTS.md
  โ””โ”€ ChatGPT/agent๊ฐ€ Luna๋ฅผ ๋ฐœ๊ฒฌํ•˜๋„๋ก ํ•˜๋Š” ์งง์€ entry point
 
.agents/skills/luna-chat-coder/SKILL.md
  โ””โ”€ ๊ณตํ†ต์ ์ธ chat-based development policy
 
๊ธฐ์กด project tooling / workflow
  โ””โ”€ ์‹ค์ œ ๋นŒ๋“œยทlintยท๋ฐฐํฌ ๊ทœ์น™

์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Luna๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ๊ทœ์น™์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ธฐ์กด ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉด์„œ ๋Œ€ํ™”ํ˜• ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €์žฅ์†Œ์˜ AGENTS.md์—๋„ ์ด ์›์น™์ด ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Luna๋Š” continuity/fallback layer์ด๊ณ  ๊ธฐ์กด CLAUDE.md workflow๋ฅผ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


3. ์‹ค์ œ๋กœ ์ถ”๊ฐ€ํ•œ ๊ตฌ์กฐ

ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ํ•ต์‹ฌ ์ถ”๊ฐ€ ๊ตฌ์กฐ๋Š” ๋งค์šฐ ์ž‘์Šต๋‹ˆ๋‹ค.

AGENTS.md
 
.agents/
โ””โ”€โ”€ skills/
    โ””โ”€โ”€ luna-chat-coder/
        โ”œโ”€โ”€ SKILL.md
        โ””โ”€โ”€ references/
            โ”œโ”€โ”€ actions-missions.md
            โ”œโ”€โ”€ recovery.md
            โ””โ”€โ”€ design-rationale.md

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ top-level entry point์™€ ์ƒ์„ธ ์ •์ฑ…์„ ๋ถ„๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AGENTS.md

AI๊ฐ€ ์ €์žฅ์†Œ์— ๋“ค์–ด์™”์„ ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ์ง„์ž…์ ์ž…๋‹ˆ๋‹ค.

์—ญํ• ์€ "์ด ์ €์žฅ์†Œ์—์„œ๋Š” Luna skill์„ ๋จผ์ € ํ™•์ธํ•˜๋ผ" ์ •๋„๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ๋ช…๋ น, ์ฝ˜ํ…์ธ  ๊ทœ์น™, ๋ฐฐํฌ ๋ฐฉ์‹ ๋“ฑ์€ ์—ฌ๊ธฐ์— ํ•จ๊ป˜ ์ ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, Luna ์ž์ฒด์˜ ์ƒ์„ธ ๋™์ž‘์„ ๋ชจ๋‘ ๋„ฃ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

SKILL.md

์—ฌ๊ธฐ๊ฐ€ ์‹ค์ œ Luna์˜ canonical policy์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. exact commit ํ™•์ธ
2. sandbox ์šฐ์„ 
3. ๊ธฐ์กด capability ์กฐ์‚ฌ
4. project-defined tooling ์ค€์ˆ˜
5. GitHub state๋ฅผ durable source๋กœ ์ทจ๊ธ‰
6. ์‹คํŒจ ์›์ธ ์ง„๋‹จ ํ›„ retry
7. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ exact publication path ์„ ํƒ
8. ์‹ค์ œ ์‹คํ–‰ํ•œ ๊ฒ€์ฆ๋งŒ ๋ณด๊ณ 

์ด ์ •์ฑ…์„ repository-local skill๋กœ ๋„ฃ์–ด ๋‘๋ฉด ์ƒˆ๋กœ์šด ๋Œ€ํ™”๊ฐ€ ์‹œ์ž‘๋˜์–ด๋„ ๋™์ผํ•œ ๊ฐœ๋ฐœ ์›์น™์„ ๋‹ค์‹œ ์„ค๋ช…ํ•  ํ•„์š”๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.


4. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์›์น™: Sandbox First

Luna๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

AI agent๊ฐ€ GitHub๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋ชจ๋“  ์ž‘์—…์„ GitHub Actions์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ ๋‹ค์Œ ์ •๋„๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

Repository checkout
       โ†“
Sandbox์—์„œ ํŒŒ์ผ ํƒ์ƒ‰
       โ†“
์ˆ˜์ •
       โ†“
Build / Test / Lint
       โ†“
์ •ํ™•ํ•œ diff ํ™•์ธ
       โ†“
GitHub์— ๊ฒŒ์‹œ

GitHub Actions๋Š” ์ด ์ •์ƒ ๊ฒฝ๋กœ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ธฐ๋ณธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์•„๋‹ˆ๋ผ fallback execution boundary๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ, ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ์ž‘์—…์€ sandbox๊ฐ€ ๋” ๋น ๋ฅด๊ณ  ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

๋‘˜์งธ, Actions๋ฅผ ๋งค ์ž‘์—…๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋ฉด workflow startup, artifact, cleanup ๋“ฑ์˜ ์šด์˜ ๋ถ€๋‹ด์ด ์ƒ๊น๋‹ˆ๋‹ค.

์…‹์งธ, ์›๊ฒฉ ์‹คํ–‰์€ ์‹คํŒจํ–ˆ์„ ๋•Œ ์›์ธ์„ ์ถ”์ ํ•ด์•ผ ํ•  ์ •๋ณด๊ฐ€ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Luna์—์„œ๋Š” ์‹ค์ œ capability gap์ด ์žˆ์„ ๋•Œ๋งŒ Actions๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


5. ๊ทธ๋ ‡๋‹ค๋ฉด Actions๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

Luna์—์„œ๋Š” Actions๋ฅผ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋ด…๋‹ˆ๋‹ค.

Supply

sandbox๋Š” ์ฝ”๋“œ ์ˆ˜์ • ์ž์ฒด๋Š” ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•„์š”ํ•œ ์™ธ๋ถ€ input์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • SDK, native library, generated input ๋˜๋Š” ์™ธ๋ถ€ dependency๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

Exact transport

๋ณ€๊ฒฝ๋Ÿ‰์ด ํฌ๊ฑฐ๋‚˜ binary, mode-sensitive ๋ณ€๊ฒฝ์ด ํฌํ•จ๋˜์–ด ์ผ๋ฐ˜์ ์ธ API file write๋ณด๋‹ค patch/bundle ๋˜๋Š” Git object transport๊ฐ€ ๋” ์•ˆ์ „ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

Degraded remote execution

sandbox ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์‚ฌ์šฉ๋Ÿ‰ยท์‹œ๊ฐ„ยท๋ฆฌ์†Œ์Šค ์ œํ•œ์œผ๋กœ ์ •์ƒ์ ์ธ ์ž‘์—…์„ ๊ณ„์†ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ ์€ Actions๋ฅผ ๋ฌด์กฐ๊ฑด ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์™œ ์“ฐ๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


6. GitHub์˜ ์ •ํ™•ํ•œ ์ƒํƒœ๋ฅผ ์šฐ์„ ํ•œ๋‹ค

Chat ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์ƒํ™ฉ ์ค‘ ํ•˜๋‚˜๋Š” ๋Œ€ํ™” ๋‚ด์šฉ๋งŒ ๊ฐ€์ง€๊ณ  ํ”„๋กœ์ ํŠธ ์ƒํƒœ๋ฅผ ์ถ”์ธกํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋Ÿฐ ํ๋ฆ„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ€ํ™”์—์„œ ํŒŒ์ผ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•จ
        โ†“
์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ดˆ๊ธฐํ™”๋จ
        โ†“
GitHub์—๋Š” ์ด๋ฏธ ๋‹ค๋ฅธ commit์ด ์กด์žฌ
        โ†“
AI๊ฐ€ ์ด์ „ ๋Œ€ํ™” ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ํŒŒ์ผ์„ ์žฌ๊ตฌ์„ฑ
        โ†“
์˜๋„ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ๋ฐœ์ƒ

Luna๋Š” ์ด๋Ÿฐ ์ƒํ™ฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด recovery ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋‘ก๋‹ˆ๋‹ค.

commit / PR head
    > immutable Git ๋˜๋Š” Actions artifact
    > ์‚ด์•„์žˆ๋Š” sandbox working tree
    > conversation reconstruction

์ฆ‰ ์ •ํ™•ํ•œ source byte๊ฐ€ Git์— ์กด์žฌํ•œ๋‹ค๋ฉด ๋Œ€ํ™” ๋‚ด์šฉ์„ source๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์›์น™์€ ์ผ๋ฐ˜์ ์ธ GitOps๋‚˜ CI/CD์—์„œ๋„ ์ต์ˆ™ํ•œ ๋ชจ๋ธ์ด์ง€๋งŒ, conversational coding ํ™˜๊ฒฝ์—์„œ๋Š” ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


7. ์‹ค์ œ ์ €์žฅ์†Œ์—๋„ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ์ ์šฉํ–ˆ๋‹ค

์ด๋ฒˆ ์ ์šฉ ์‹œ์ ์˜ ์ €์žฅ์†Œ์—๋Š” ์ด๋ฏธ Luna ๋„์ž…์„ ์œ„ํ•œ ๋ณ€๊ฒฝ์ด ๋ฐ˜์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ commit์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

chore: adopt Luna Chat Coder workflow
 
Adopt Luna Chat Coder workflow and repair recent daily digest enrichment

๊ทธ๋ฆฌ๊ณ  ์ด commit์— ์˜ํ•ด AGENTS.md์™€ .agents/skills/luna-chat-coder/ ๊ตฌ์กฐ๊ฐ€ ์ €์žฅ์†Œ์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ AGENTS.md์—์„œ๋Š” ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง€์ผœ์•ผ ํ•  ๋ถˆ๋ณ€ ์กฐ๊ฑด๋„ ๊ฐ™์ด ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

Next.js 15 + next-intl
output: export
GitHub Pages deployment
npm run build
npm run lint
๊ธฐ์กด lockfile ์œ ์ง€
๊ธฐ์กด GitHub Actions publication behavior ์œ ์ง€

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด AI๊ฐ€ "๋” ํŽธํ•œ ๋ฐฉ๋ฒ•"์„ ์ด์œ ๋กœ ํ”„๋กœ์ ํŠธ์˜ ๋Ÿฐํƒ€์ž„์ด๋‚˜ dependency, ๋ฐฐํฌ ๊ตฌ์กฐ๋ฅผ ์ž„์˜๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


8. ChatGPT Web์—์„œ GitHub ์—ฐ๊ฒฐ์„ ๋‘ ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

Luna ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ด ๋ถ€๋ถ„๋„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ChatGPT Web workflow์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ณ„์ธต์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

GitHub Plugin

ChatGPT ์ชฝ์—์„œ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ workflow/tool capability์ž…๋‹ˆ๋‹ค.

ChatGPT Codex Connector

GitHub ์ชฝ์—์„œ ์‹ค์ œ target repository access๋ฅผ ๋ถ€์—ฌํ•˜๋Š” authorization boundary์ž…๋‹ˆ๋‹ค.

๋‘˜์€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ฐœ๋…์ ์œผ๋กœ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ChatGPT
  โ”‚
  โ”œโ”€โ”€ GitHub Plugin
  โ”‚      โ””โ”€โ”€ tool/workflow capability
  โ”‚
  โ””โ”€โ”€ Codex Connector
         โ””โ”€โ”€ repository authorization

์ด ๋‘˜์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด "GitHub๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๋ฐ ์™œ ์ด ์ €์žฅ์†Œ๋Š” ์ˆ˜์ •ํ•˜์ง€ ๋ชปํ•˜์ง€?" ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


9. ๊ธฐ์กด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์œ„ํ•œ ์ ์šฉ ๋ฐฉ์‹

Luna์˜ ์žฅ์ ์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ํฐ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์—†์ด ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ skill directory๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

.agents/skills/luna-chat-coder/

๊ทธ ๋‹ค์Œ ๊ธฐ์กด AGENTS.md ๋˜๋Š” agent instruction์ด ์žˆ๋‹ค๋ฉด Luna์˜ ์งง์€ entry-point๋ฅผ ํ”„๋กœ์ ํŠธ ๊ทœ์น™๊ณผ ํ•ฉ์นฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ ๊ทœ์น™์„ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ๋‹ค์Œ์ด ์žˆ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

CLAUDE.md
CONTRIBUTING.md
๊ฐœ๋ฐœ ๊ทœ์น™
๋นŒ๋“œ ๊ทœ์น™
ํ…Œ์ŠคํŠธ ๊ทœ์น™
๋ฐฐํฌ ๊ทœ์น™

Luna๋Š” ๊ทธ ์œ„์—์„œ ๋Œ€ํ™”ํ˜• ๊ฐœ๋ฐœ์˜ continuity์™€ fallback๋งŒ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.


10. ํ•˜๋‚˜์˜ AI๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 

์ตœ๊ทผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•˜๋‚˜์˜ AI ๋„๊ตฌ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ž‘์—… ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์กฐํ•ฉํ•˜๋Š” ํŽธ์ด ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €๋Š” ChatGPT, Claude, Gemini, GitHub Copilot์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ๋„๊ตฌ๋ฅผ ๊ฒฝ์Ÿ ๊ด€๊ณ„๋กœ ๋ณด๊ธฐ๋ณด๋‹ค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์žฅ์ ์„ ๊ฐ€์ง„ ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ๋ณด๋Š” ํŽธ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

                    AI Development Workflow
                             โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚                    โ”‚                    โ”‚
     ChatGPT              Claude               Gemini
        โ”‚                    โ”‚                    โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚                  โ”‚
                 Copilot / CLI       ๊ธฐํƒ€ AI Tools
                       โ”‚
                       โ–ผ
              Repository / GitHub
                       โ”‚
                       โ–ผ
            Luna Chat Coder Policy
             โ”œโ”€ exact state
             โ”œโ”€ sandbox first
             โ”œโ”€ capability inventory
             โ”œโ”€ verification
             โ”œโ”€ recovery
             โ””โ”€ publication

๋ฌผ๋ก  ์‹ค์ œ ์—ญํ• ์€ ์ž‘์—…๊ณผ ์‹œ์ ์— ๋”ฐ๋ผ ๊ณ„์† ๋ฐ”๋€๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ํŠน์ • ๋ชจ๋ธ์— ๋ชจ๋“  ๊ฒƒ์„ ๋งก๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ AI๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฐœ๋ฐœ ๊ทœ์น™๊ณผ source of truth๋Š” ํ•˜๋‚˜๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ”๋กœ ์ด ์ง€์ ์—์„œ Luna Chat Coder์˜ ์—ญํ• ์ด ์ƒ๊น๋‹ˆ๋‹ค.

AI ๋ชจ๋ธ์ด ChatGPT์ธ์ง€, Claude์ธ์ง€, Gemini์ธ์ง€, Copilot์ธ์ง€์™€ ๊ด€๊ณ„์—†์ด ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณตํ†ต ์›์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ repository state ํ™•์ธ
        โ†“
ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ์กด ๊ทœ์น™ ํ™•์ธ
        โ†“
๊ฐ€๋Šฅํ•˜๋ฉด local/sandbox์—์„œ ์ž‘์—…
        โ†“
ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ remote execution
        โ†“
์‹ค์ œ build / test / lint ์ˆ˜ํ–‰
        โ†“
์ •ํ™•ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ
        โ†“
GitHub์— durable state๋กœ ๋ฐ˜์˜

์ฆ‰ AI ๋ชจ๋ธ์€ ๊ต์ฒด๋  ์ˆ˜ ์žˆ์ง€๋งŒ repository engineering policy๋Š” ์‰ฝ๊ฒŒ ๋ฐ”๋€Œ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ด€์ ์—์„œ Luna๋Š” ํŠน์ • AI์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ๋„๊ตฌ๋ผ๊ธฐ๋ณด๋‹ค, ์—ฌ๋Ÿฌ AI๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๊ฐ€ ์ผ๊ด€๋˜๋„๋ก ๋งŒ๋“œ๋Š” repository-level engineering contract์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

AI๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ workflow

AI coding tool์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์˜คํžˆ๋ ค ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ AI๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ dependency๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ remote execution์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•ž์œผ๋กœ์˜ AI-assisted development์—์„œ๋Š”

"์–ด๋–ค AI๊ฐ€ ๊ฐ€์žฅ ์ข‹์€๊ฐ€?"

๋ณด๋‹ค

"์–ด๋–ค AI๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํ”„๋กœ์ ํŠธ์˜ engineering invariant๋ฅผ ์–ด๋–ป๊ฒŒ ์œ ์ง€ํ•  ๊ฒƒ์ธ๊ฐ€?"

๊ฐ€ ๋” ์ค‘์š”ํ•œ ์งˆ๋ฌธ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Luna Chat Coder๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž‘์€ ์‹คํ—˜์ž…๋‹ˆ๋‹ค.

๋ชจ๋ธ ์ž์ฒด์— ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์˜์กดํ•˜์ง€ ์•Š๊ณ , ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์•ˆ์— ๊ฐœ๋ฐœ ์›์น™์„ ๋‚จ๊ฒจ๋‘๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ AI๋Š” ๋ฐ”๋€Œ์–ด๋„ Git repository๋Š” ๊ณ„์† ๋‚จ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


11. ์ด๋ฒˆ ์ ์šฉ์—์„œ ๋А๋‚€ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”

์ฒ˜์Œ์—๋Š” Luna๋ฅผ ๋‹จ์ˆœํ•œ "AI coding instruction" ์ •๋„๋กœ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ ์ €์žฅ์†Œ์— ์ ์šฉํ•ด ๋ณด๋‹ˆ ํ•ต์‹ฌ์€ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์šด์˜ ๊ฒฝ๊ณ„(boundary)๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์— ๋” ๊ฐ€๊น๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์งˆ๋ฌธ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์–ด๋””์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š”๊ฐ€?
โ†’ sandbox
 
๋ฌด์—‡์„ source of truth๋กœ ๋ณด๋Š”๊ฐ€?
โ†’ Git commit / PR head
 
์–ธ์ œ ์›๊ฒฉ ์‹คํ–‰์„ ํ•˜๋Š”๊ฐ€?
โ†’ ์‹ค์ œ capability gap์ด ์žˆ์„ ๋•Œ
 
์–ด๋–ค ์ƒํƒœ๋ฅผ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋ณด๋Š”๊ฐ€?
โ†’ durable Git / artifact ์šฐ์„ 
 
์–ธ์ œ ์ž‘์—… ์™„๋ฃŒ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
โ†’ ์‹ค์ œ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ

์ด๋Ÿฐ ๊ธฐ์ค€์ด ์—†์œผ๋ฉด AI agent๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ๋˜‘๋˜‘ํ•˜๋”๋ผ๋„ ์‹คํ–‰ ํ™˜๊ฒฝ์˜ ์šฐ์—ฐํ•œ ์ƒํƒœ์— ์˜์กดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์ด๋Ÿฐ ๊ฒฝ๊ณ„๋ฅผ ๋ช…์‹œํ•˜๋ฉด ๋ชจ๋ธ์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ๋Œ€ํ™”๊ฐ€ ๋Š๊ฒจ๋„ ์–ด๋А ์ •๋„ ์ผ๊ด€๋œ workflow๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


12. ์•ž์œผ๋กœ์˜ ๋ฐฉํ–ฅ

์ด๋ฒˆ์—๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์ €์žฅ์†Œ์— ๋จผ์ € ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ œ๊ฐ€ ์šด์˜ํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋„ ๊ฐ™์€ ํŒจํ„ด์„ ์ ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ Kubernetes์™€ Cloud Native ํ”„๋กœ์ ํŠธ์ฒ˜๋Ÿผ ๋‹ค์Œ ์š”์†Œ๊ฐ€ ๋งŽ์€ ์ €์žฅ์†Œ์—์„œ ํšจ๊ณผ๋ฅผ ๋” ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ณต์žกํ•œ CI/CD
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ GitHub Actions workflow
  • Helm/Kustomize์™€ ๊ฐ™์€ ์„ ์–ธ์  ๊ตฌ์„ฑ
  • ๊ธด ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„
  • ์—ฌ๋Ÿฌ agent๊ฐ€ ๋™์‹œ์— ์ž‘์—…ํ•  ๊ฐ€๋Šฅ์„ฑ
  • ๋Œ€๊ทœ๋ชจ multi-file ๋ณ€๊ฒฝ
  • offline ๋˜๋Š” restricted network ํ™˜๊ฒฝ

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


๋งˆ๋ฌด๋ฆฌ

ChatGPT ๊ฐ™์€ ๋Œ€ํ™”ํ˜• AI๊ฐ€ ๊ฐœ๋ฐœ์— ๊นŠ์ˆ™ํ•˜๊ฒŒ ๋“ค์–ด์˜ค๋ฉด์„œ "AI๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž˜ ์ž‘์„ฑํ•˜๋Š”๊ฐ€"๋ผ๋Š” ์งˆ๋ฌธ์€ ์ด๋ฏธ ์–ด๋А ์ •๋„ ๋‹ต์„ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋” ์ค‘์š”ํ•œ ์งˆ๋ฌธ์€ ๋‹ค์Œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AI๊ฐ€ ๋งŒ๋“  ๋ณ€๊ฒฝ์„ ์šฐ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฒ€์ฆํ•˜๊ณ , ๋ณต๊ตฌํ•˜๊ณ , ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

Luna Chat Coder๋Š” ์ด ๋ฌธ์ œ๋ฅผ ๊ฑฐ์ฐฝํ•œ ํ”Œ๋žซํผ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ๋ณด๋‹ค repository-local policy + sandbox-first + durable Git state + bounded Actions fallback์ด๋ผ๋Š” ์ž‘์€ ๋ชจ๋ธ๋กœ ํ’€์–ด๋ณด๋ ค๋Š” ์‹œ๋„์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ dasomel.github.io ์ ์šฉ์€ ๊ทธ ๋ชจ๋ธ์„ ์‹ค์ œ ์šด์˜ ์ €์žฅ์†Œ์— ์ ์šฉํ•œ ์ฒซ ๋ฒˆ์งธ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

๊ด€๋ จ ํ”„๋กœ์ ํŠธ:

๊ด€๋ จ OSS