[AI] Gemini CLI๋ฅผ ๋” ์•Œ์ฐจ๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด์ž

๐Ÿ› ๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

โšฝ๏ธ ๋ชฉํ‘œ

๊ฐ€๋‚œํ•œ ์ทจ์ค€์ƒ์€ ์˜ค๋Š˜๋„ Google AI Pro ํ”Œ๋žœ์„ ์•Œ์ฐจ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌ ์ค‘์ด๋‹ค. ํ‰์†Œ์—๋Š” oh-my-opencode๋ฅผ ํ†ตํ•ด ๊ธฐ์ดˆ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€, ํ† ํฐ ์ œํ•œ์— ๊ฑธ๋ฆฌ๋ฉด Gemini CLI๋กœ ๋„˜์–ด์˜ค๊ณ , ์‹œ๊ฐ์ ์ธ ๋ทฐ๋ฅผ ๋ณด๋ฉด์„œ ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ๋•Œ๋Š” Google Antigravity๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ์‹์„ ์„ž์–ด๊ฐ€๋ฉฐ ํž˜๋“ค๊ฒŒ ๊ฐœ๋ฐœ์„ ์ด์–ด๊ฐ€๊ณ  ์žˆ๋‹ค.

 

์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋‹ˆ ๋ฌธ๋“ ‘Gemini CLI ์•ˆ์—์„œ oh-my-opencode(OmO)์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ๋“  ํ‰๋‚ด ๋‚ด๋ณผ ์ˆ˜ ์—†์„๊นŒ?’๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

OmO์ฒ˜๋Ÿผ ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ๋จผ์ € ์ž‘์„ฑ์‹œํ‚ค๊ณ , ๊ทธ ๊ณ„ํš์„ ํ† ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ด ๋„ˆ๋ฌด ๋งˆ์Œ์— ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋‚ด ๋ชฉํ‘œ๋Š” OmO์˜ ํ•ต์‹ฌ์ธ Prometheus(Plan Builder)์™€ Atlas(Plan Executor)์˜ ์—ญํ• ์„ Gemini CLI๋ผ๋Š” ๋‹จ์ผ ํ™˜๊ฒฝ์—์„œ ๊ฐ„์ ‘์ ์œผ๋กœ๋‚˜๋งˆ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ฒƒ์œผ๋กœ ์žกํ˜”๋‹ค.

๐Ÿ” ์˜๋ฌธ๊ณผ ์ฆ๋ช…

oh-my-opencode ๊ฐœ๋ฐœํŒ€์€ 24,000๋‹ฌ๋Ÿฌ(ํ•œํ™” ์•ฝ 3,500๋งŒ ์›)์–ด์น˜์˜ ์–ด๋งˆ์–ด๋งˆํ•œ ํ† ํฐ์„ ํƒœ์›Œ๊ฐ€๋ฉฐ ํ† ํฐ ์ตœ์ ํ™”์™€ ์ •ํ™•๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—„์ฒญ๋‚œ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์˜€๋‹ค๊ณ  ํ•œ๋‹ค. ๊ณผ์—ฐ ๋ฌด์—‡์ด ํ† ํฐ์„ ์ ˆ์•ฝํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๋Œ์–ด์˜ฌ๋ ธ๋Š”์ง€ ๋จผ์ € ์‚ดํŽด๋ณด์ž. ๊ณต์‹ README.md ํŒŒ์ผ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค.

"/init-deep์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ์ „์ฒด์— ๊ฑธ์ณ ๊ณ„์ธต์ ์ธ AGENTS.md ํŒŒ์ผ์„ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ ํ† ํฐ ํšจ์œจ๊ณผ ์—์ด์ „ํŠธ ์„ฑ๋Šฅ์„ ๋™์‹œ์— ์žก๋Š”๋‹ค."

 

์ฆ‰, ์—์ด์ „ํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ํ’€ ์Šค์บ”ํ•˜๋„๋ก ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์š”์•ฝ๋œ ํ•ต์‹ฌ ์ง€์‹ ๋ฌธ์„œ๋งŒ ์ฐธ์กฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ถˆํ•„์š”ํ•œ ์ปจํ…์ŠคํŠธ ๋กœ๋“œ๋ฅผ ๋ง‰๋Š” ์ตœ์ ํ™” ์ „๋žต์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, '๊ณ„ํš ์ˆ˜๋ฆฝ(Prometheus) -> ๊ฐœ๋ฐœ ์ง„ํ–‰(Atlas)'์œผ๋กœ ์ด์–ด์ง€๋Š” ์—ญํ•  ๋ถ„๋‹ด ๊ตฌ์กฐ๋Š” ์–ด๋–จ๊นŒ? ์ด์— ๋Œ€ํ•œ ํ•ด๋‹ต์€ ๊ณต์‹ GitHub์˜ Issue #1826์—์„œ ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚œ๋‹ค.

Q. ์‚ฌ์šฉ์ž ๋ฌธ์ œ ์ œ๊ธฐ
"์—์ด์ „ํŠธ ์—ญํ•  ๊ฐ„์˜ ์ •๋ณด ์ „๋‹ฌ(Hand-off)์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋Š˜๋ฆด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ† ํฐ ์†Œ๋ชจ๋ฅผ ๋ฐฐ๊ฐ€์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค."

A. ๋ฉ”์ธํ…Œ์ด๋„ˆ ๋‹ต๋ณ€
"์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค๊ณ„๋Š” ์˜๋„์ ์ธ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์ž…๋‹ˆ๋‹ค. OMO๋Š” ๋ณต์žกํ•œ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ํ•˜๊ธฐ์—, ์ „๋ฌธํ™”๋กœ ์–ป๋Š” ์ด์ (์ •ํ™•๋„)์ด ํ† ํฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋Šฅ๊ฐ€ํ•œ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค."

 

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

 

ํ•˜์ง€๋งŒ Gemini CLI์™€ ๊ฐ™์€ ๋‹จ์ผ ์—์ด์ „ํŠธ ํ™˜๊ฒฝ์€ ์—์ด์ „ํŠธ ๊ฐ„์˜ '์ •๋ณด ์ „๋‹ฌ' ๊ณผ์ •์ด ํ•„์š” ์—†๋‹ค. ์„ธ์…˜์„ ํ†ตํ•ด ์ปจํ…์ŠคํŠธ๋ฅผ ์บ์‹ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์—ฐ์†์ ์ธ ์ž‘์—…์—์„œ๋Š” ๋‹จ์ผ ์—์ด์ „ํŠธ ๋ฐฉ์‹์ด ํ† ํฐ ์†Œ๋ชจ๋Ÿ‰ ์ธก๋ฉด์—์„œ ํ›จ์”ฌ ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ€์„ค์ด ์„ธ์›Œ์ง„๋‹ค.

 

์‹ค์ œ๋กœ ์ด ๊ฐ€์„ค์ด ๋งž๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์•˜๋‹ค.

  • ํ…Œ์ŠคํŠธ1 (OmO ๋ฐฉ์‹): ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ œ๊ณต -> ๊ณ„ํš ์ˆ˜๋ฆฝ(PLANNING ์ƒ์„ฑ) -> ๊ณ„ํš์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ ๊ฐœ๋ฐœ
  • ํ…Œ์ŠคํŠธ2 (๋‹จ์ผ ํ”„๋กฌํ”„ํŠธ ๋ฐฉ์‹): ๋‹ค์งœ๊ณ ์งœ ํ”„๋กฌํ”„ํŠธ๋งŒ ์ „๋‹ฌ

 

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋œ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•„์ฃผ ๋‹จ์ˆœํ•˜๊ฒŒ ๋˜์ ธ๋ณด์•˜๋‹ค.

Task ๋“ฑ๋ก ํผ์—์„œ '์ธ๋ฐ•์Šค ๋ณด๊ด€' ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ธ๋ฐ•์Šค์— ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด. ์ˆ˜์ •ํ•ด ์ค˜.

ํ…Œ์ŠคํŠธ1(OmO ํ”Œ๋กœ์šฐ)

ํ…Œ์ŠคํŠธ2(ํ”„๋กฌํ”„ํŠธ๋งŒ ์ „๋‹ฌ)

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ •๋ฆฌ

๊ตฌ๋ถ„ Reqs Input Tokens Cache Reads Output Tokens ์ด ์—ฐ์‚ฐ ๋น„์šฉ (USD)
ํ…Œ์ŠคํŠธ1 39 147,672 743,994 5,535 ์•ฝ $0.1276
ํ…Œ์ŠคํŠธ2 29 176,802 922,909 2,306 ์•ฝ $0.1415

ํ…Œ์ŠคํŠธ1์—์„œ ์บ์‹ฑ๋œ ๋‚ด์šฉ์„ ํ…Œ์ŠคํŠธ2์—์„œ ์ผ๋ถ€ ์žฌ์‚ฌ์šฉํ–ˆ๋‹ค๋Š” ์•„์‰ฌ์šด ์ ์€ ์žˆ์ง€๋งŒ, ๊ทธ๋Ÿผ์—๋„ ๋‹จ์ˆœ ์ง€์‹œ๋ฅผ ๋‚ด๋ฆฐ ํ…Œ์ŠคํŠธ2๊ฐ€ ์ž…๋ ฅ ํ† ํฐ์„ 20%๊ฐ€๋Ÿ‰ ๋” ์†Œ๋ชจํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๋น„์šฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž‘์—…์˜ ์งˆ์—์„œ๋„ ํฐ ์ฐจ์ด๊ฐ€ ๋‚ฌ๋‹ค. ํ…Œ์ŠคํŠธ1์€ ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ์ •ํ™•ํžˆ ์ฐพ์•„ ๊น”๋”ํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐ˜๋ฉด, ๋šœ๋ ทํ•œ ๊ณ„ํšํ‘œ๊ฐ€ ์—†์—ˆ๋˜ ํ…Œ์ŠคํŠธ2 ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ๋“ค์„ ๋…ธ์ถœํ–ˆ๋‹ค.

  1. ํ•˜๋„ค์Šค(Harness) ๋ฌธ์ œ: ์ž‘์—… ์™„๋ฃŒ ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„์„œ ์ง์ ‘ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋‹ˆ, ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ
  2. ๋น„ํšจ์œจ์ ์ธ ํƒ์ƒ‰: ๋ฌด์–ผ ๊ณ ์ณ์•ผ ํ• ์ง€ ๋ชฐ๋ผ SearchText, ReadFile ๋„๊ตฌ๋ฅผ ๋‚œ์‚ฌํ•˜๋ฉฐ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์„ ์—„์ฒญ๋‚˜๊ฒŒ ์ฝ์Œ
  3. ์ž‘์—… ์‹œ๊ฐ„ ์ง€์—ฐ: ๋ช…ํ™•ํ•œ ์ง€์‹œ ์‚ฌํ•ญ๊ณผ ๋ชฉํ‘œ๊ฐ€ ์—†๋‹ค ๋ณด๋‹ˆ ์—์ด์ „ํŠธ๊ฐ€ ํ—ค๋งค๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์กŒ๋‹ค.

ํ•˜๋„ค์Šค: ์‹œ์Šคํ…œ์ด๋‚˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ, ์Šคํฌ๋ฆฝํŠธ ๋“ฑ์˜ ์ง‘ํ•ฉ

๐Ÿงฉ ๊ตฌํ˜„ ๊ณผ์ •

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

  1. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ฐ ๊ธฐ๋ฐ˜ ์ง€์‹์„ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์ฃผ์ž… (/init)
  2. ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋ฐœ ๊ณ„ํš ์ˆ˜๋ฆฝ (/plan)
  3. ์ˆ˜๋ฆฝ๋œ ๊ณ„ํš์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐœ๋ฐœ (/work)

1. ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ฃผ์ž… (/init)

๊ฐ€์žฅ ๋จผ์ € OmO์˜ /init-deep๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” /init ๋ช…๋ น์–ด๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์ž. OmO๋Š” ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ์ •๋ณด๋ฅผ ๊ตฌ์กฐํ™”๋œ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

# PROJECT KNOWLEDGE BASE
## OVERVIEW
## STRUCTURE
## WHERE TO LOOK
## CODE MAP
...

๋‚˜๋„ ์ด ๊ตฌ์กฐ๋ฅผ ์ฐจ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ์ œ์ผ ๋จผ์ € /init ์ปค๋งจ๋“œ ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ–ˆ๋‹ค.

mkdir -p ~/.gemini/commands
vim ~/.gemini/commands/init.toml

๋ชจ๋“  Prompt์— ๋Œ€ํ•œ ์ƒ์„ธ ๋‚ด์šฉ์€ gemini-cli-commands ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ •๋ฆฌํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋”ฐ๋กœ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์„ ์˜ˆ์ •์ด๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํด๋”๋กœ ์ด๋™ํ•ด gemini๋ฅผ ์‹คํ–‰ํ•œ ๋’ค /init์„ ์ž…๋ ฅํ•ด ๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋Œ€์™€ ๋‹ฌ๋ฆฌ ํ™”๋ฉด์— ๋งˆํฌ๋‹ค์šด ํ…์ŠคํŠธ๋งŒ ์ค„์ค„์ด ์ถœ๋ ฅ๋  ๋ฟ ์‹ค์ œ ํŒŒ์ผ์€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๊ทธ ์ด์œ ๋Š” Gemini CLI์˜ .toml ์ปค์Šคํ…€ ์ปค๋งจ๋“œ๊ฐ€ ๋‹จ์ˆœํžˆ LLM์—๊ฒŒ "์–ด๋–ค ํฌ๋งท์œผ๋กœ ๋Œ€๋‹ตํ• ์ง€"๋ฅผ ์ง€์‹œํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์— ๋ถˆ๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, LLM์€ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ…์ŠคํŠธ๋ฅผ ๋ฑ‰์–ด๋‚ด๋Š” ์ฒ ์ €ํžˆ ๊ฒฉ๋ฆฌ๋œ ๋‡Œ ์—ญํ• ๋งŒ ํ•  ๋ฟ, ๋‚ด ์šด์˜์ฒด์ œ์— ์ ‘๊ทผํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ํŒŒ์ผ์„ ์“ฐ๋Š” ์†์ด ์—†๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด '๋‡Œ'์™€ '์†'์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋ฐ”๋กœ MCP (Model Context Protocol)๋‹ค.

  • Model (๋ชจ๋ธ): ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์งœ๋Š” AI (Gemini ๋“ฑ)
  • Context (์ปจํ…์ŠคํŠธ/๋ฌธ๋งฅ): AI๊ฐ€ ๊ฐ‡ํ˜€์žˆ๋Š” ํ…์ŠคํŠธ ๋ฐ•์Šค ๋„ˆ๋จธ์˜ ์ง„์งœ ์„ธ์ƒ. ์ฆ‰, ๋‚ด ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ, Git ํ™˜๊ฒฝ, ํ„ฐ๋ฏธ๋„ ๋“ฑ ์—์ด์ „ํŠธ๊ฐ€ ์กฐ์ž‘ํ•ด์•ผ ํ•˜๋Š” '์‹ค์ œ ์ž‘์—… ํ™˜๊ฒฝ'
  • Protocol (ํ”„๋กœํ† ์ฝœ): ์ด ๊ฒฉ๋ฆฌ๋œ ๋ชจ๋ธ(Model)์ด ์™ธ๋ถ€ ํ™˜๊ฒฝ(Context)์˜ ๋„๊ตฌ๋“ค์„ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ด์–ด์ฃผ๋Š” '์—ฐ๊ฒฐ ๊ทœ์•ฝ'

๊ฐ„๋žตํžˆ ๋งํ•ด, MCP๋Š” ๋ง๋งŒ ํ•˜๋˜ AI์—๊ฒŒ ๋‚ด ๋กœ์ปฌ ํ™˜๊ฒฝ์„ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ๊ณผ ๋„๊ตฌ๋ฅผ ์ฅ์—ฌ์ฃผ๋Š” ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค. ์ด์ œ ์ƒ๊ฐ๋งŒ ๊ฐ€๋Šฅํ•œ toml ๋ช…๋ น์–ด์— ์ง„์งœ ์†์„ ๋‹ฌ์•„์ฃผ๊ธฐ ์œ„ํ•ด MCP๋ฅผ ์ ์šฉํ•ด ๋ณด์ž.

vim ~/.gemini/settings.json

์„ค์ • ํŒŒ์ผ์˜ general ๋ธ”๋ก์ด ๋๋‚˜๋Š” ๊ณณ ๋’ค์— ์ฝค๋งˆ(,)๋ฅผ ์ฐ๊ณ , ๋‹ค์Œ ๋ผ์ธ์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

  "mcpServers": {
    "local_filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "{GIT_PROJECT_DIR}"
      ]
    }
  }

์—ฌ๊ธฐ์„œ {GIT_PROJECT_DIR}์—๋Š” ~/dev/git/ ์™€ ๊ฐ™์ด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ํ”„๋กœ์ ํŠธ์˜ ์ตœ์ƒ์œ„ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

~/์™€ ๊ฐ™์ด ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ค„ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

 

์„ค์ •์„ ์ €์žฅํ•˜๊ณ  Gemini CLI๋ฅผ ์žฌ์‹œ์ž‘ํ•œ ๋’ค ๋‹ค์‹œ /init์„ ์‹คํ–‰ํ•˜๋ฉด, AI๊ฐ€ ์•Œ์•„์„œ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ๋ถ„์„ํ•˜๊ณ  ๋‹ค์Œ ํŒŒ์ผ๋“ค์„ ์ˆ˜์ • ๋ฐ ์ƒ์„ฑํ•ด ์ค€๋‹ค.

  • /GEMINI.md: AI๊ฐ€ ์ž‘์—… ์ „ ๋ฐ˜๋“œ์‹œ ์ˆ™์ง€ํ•ด์•ผ ํ•  ์‹œ์Šคํ…œ ๊ฐ€์ด๋“œ๋ผ์ธ
  • /.gemini/docs/STRUCTURE.md: ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ, ๊ธฐ์ˆ  ์Šคํƒ, ํ•ต์‹ฌ ์ฝ”๋“œ ๋งตํ•‘ ์ง€์‹
  • /.gemini/docs/DOCUMENT.md: ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ

2. ๊ณ„ํš ์ˆ˜๋ฆฝ (/plan)

ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ฐ˜ ์ง€์‹์„ ๋ชจ๋‘ ์ฃผ์ž…ํ–ˆ์œผ๋‹ˆ, ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•  ์ฐจ๋ก€๋‹ค.

์ด ์—ญ์‹œ OmO์˜ ํฌ๋งท์„ ์ฐจ์šฉํ–ˆ๋‹ค.

# Execution Plan
## 1. Goal
## 2. Scope (In-Scope / Out-of-Scope)
## 3. Architecture Impact
## 4. Execution Plan (Phase 1, 2, 3...)
## 5. Risk Mitigation
## 6. Final Verification Wave

์ด ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•ด ๋‚ด๋Š” ๋ช…๋ น์–ด ์—ญ์‹œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ถ”๊ฐ€ํ•ด ๋‘์—ˆ๋‹ค.

vim ~/.gemini/commands/plan.toml

์ด์ œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์žˆ๋‹ค๋ฉด, CLI ์ฐฝ์— ๋Œ€๊ณ  ์ด๋ ‡๊ฒŒ ์งˆ์˜ํ•˜๋ฉด ๋œ๋‹ค.

/plan Task ๋“ฑ๋ก ํผ์—์„œ ์ธ๋ฐ•์Šค ๋ณด๊ด€ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ธ๋ฐ•์Šค์— ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด. ์ˆ˜์ •ํ•ด ์ค˜.

๋ช…๋ น์„ ๋‚ด๋ฆฌ๋ฉด AI๊ฐ€ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ /.gemini/docs/PLANNING.md ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ Phase๋ณ„๋กœ ์ž˜๊ฒŒ ์ชผ๊ฐœ์ง„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ(- [ ])๋ฅผ ์ž‘์„ฑํ•ด ์ค€๋‹ค. ๋ณธ๊ฒฉ์ ์ธ ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ์ž‘์„ฑ๋œ ๊ณ„ํš ๋ฌธ์„œ๊ฐ€ ๋‚ด ์˜๋„์™€ ๋งž๋Š”์ง€ ํ•œ ๋ฒˆ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•œ๋‹ค.

3. ๊ฐœ๋ฐœ ์ง„ํ–‰ (/work)

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ˆ˜๋ฆฝ๋œ PLANNING.md ํŒŒ์ผ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์œ„์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ง€์›Œ๊ฐ€๋ฉฐ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  /work ๋ช…๋ น์–ด๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์ด ์™„์„ฑ๋œ๋‹ค.

vim ~/.gemini/commands/work.toml

๐Ÿ’จ ์ „์ฒด ์›Œํฌํ”Œ๋กœ์šฐ ์š”์•ฝ

์ด๋ ‡๊ฒŒ ๊ตฌ์ถ•๋œ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐœ๋ฐœ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. OAuth์˜ ๊ฒฝ์šฐ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ, API Key๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. ๋‹ค์Œ ๋ชจ๋ธ์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ๊ท€์ฐฎ์„ ๊ฒฝ์šฐ, plan.toml, work.toml ํŒŒ์ผ์— model ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ auth-api ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋œ๋‹ค.

  • plan: gemini-3.1-pro
    • ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš ์ˆ˜๋ฆฝ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๊ณ ์„ฑ๋Šฅ ๋ชจ๋ธ์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • work: gemini-3-flash
    • ๊ณ„ํš์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ˆ˜๋ฆฝํ•˜์˜€๊ธฐ์—, ๊ฐœ๋ฐœ์„ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด flash ๋ชจ๋ธ์„ ํ• ๋‹นํ•˜๋Š”๊ฒŒ ์ข‹์Œ
  • ํ…Œ์ŠคํŠธ ํ•ด๋ณธ ๊ฒฐ๊ณผ OAuth๋กœ ๋กœ๊ทธ์ธํ•œ ๊ฒฝ์šฐ, toml ํŒŒ์ผ์— ๋ชจ๋ธ์„ ์ง€์ •ํ•ด๋„ ๊ทธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค.
# ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ดˆ๊ธฐํ™” ๋ฐ ์ง€์‹ ๋ฒ ์ด์Šค ๊ตฌ์ถ• (์ตœ์ดˆ 1ํšŒ ๋˜๋Š” ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์‹œ)
/init
# ๊นจ๋—ํ•œ ์ƒํƒœ๋กœ ์„ธ์…˜ ์ดˆ๊ธฐํ™”
/clear

# ์ƒ์„ฑ๋œ /.gemini/docs/PLANNING.md ํŒŒ์ผ ๋‚ด์šฉ ๊ฒ€ํ† 
/plan {์š”๊ตฌ ์‚ฌํ•ญ ์ž‘์„ฑ}

# ์ปจํ…์ŠคํŠธ ์••์ถ• ๋˜๋Š” ์ดˆ๊ธฐํ™”๋กœ ํ† ํฐ ํ™•๋ณด
/compress (๋˜๋Š” /clear)
# ๊ณ„ํšํ‘œ์— ๋”ฐ๋ผ ์‹ค์ œ ์ฝ”๋“œ ๊ตฌํ˜„ ๋ฐ ์ฒดํฌ๋ฐ•์Šค ์—…๋ฐ์ดํŠธ ๋ฐ˜๋ณต
/work

# ์ž‘์—… ์™„๋ฃŒ ํ›„ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ๋ฌถ์–ด ์ž๋™ ์ปค๋ฐ‹ & ํ‘ธ์‹œ
/git

๐Ÿšจ ์ฃผ์˜์‚ฌํ•ญ

1. ํ•˜๋„ค์Šค(Harness)์™€ ์ธ๊ฐ„์˜ ๊ฐœ์ž…

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

2. .gitignore ํŒŒ์ผ ๋ฌด์‹œ ์ด์Šˆ

๋Œ€๋ถ€๋ถ„์˜ AI ์—์ด์ „ํŠธ ๋„๊ตฌ(Tool)๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ .gitignore์— ๋“ฑ๋ก๋œ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .gitignore ํŒŒ์ผ์— .gemini/ ํด๋”๋ฅผ ๋ฌด์‹ฌ์ฝ” ๋“ฑ๋กํ•ด ๋ฒ„๋ฆฌ๋ฉด, ์—์ด์ „ํŠธ๊ฐ€ ์• ์จ ๋งŒ๋“  PLANNING.md๋‚˜ STRUCTURE.md๋ฅผ ์Šค์Šค๋กœ ์ฝ์ง€ ๋ชปํ•˜๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿค” ํšŒ๊ณ 

๋‹จ์ผ ์—์ด์ „ํŠธ ํ™˜๊ฒฝ์ด ๊ฐ€์ง€๋Š” ๋ช…ํ™•ํ•œ ์žฅ์ ๊ณผ ์น˜๋ช…์ ์ธ ๋‹จ์ ์„ ๋™์‹œ์— ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ๋Š” ๋œป๊นŠ์€ ์‚ฝ์งˆ(?)์ด์—ˆ๋‹ค. ํŠนํžˆ ์ปจํ…์ŠคํŠธ ์บ์‹ฑ(Caching)์ด๋ผ๋Š” ๊ธฐ์ˆ ์ด ๊ฐ€์ ธ๋‹ค์ฃผ๋Š” ๋“๊ณผ ์‹ค์„ ํ™•์‹คํžˆ ์ฒดํ—˜ํ–ˆ๋‹ค.

 

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

'Devlog > AI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AI] ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ ํ›„๊ธฐ(oh-my-opencode, gemini cli, antigravity)  (0) 2026.03.04
[AI] oh-my-opencode ๋„์ž…๊ธฐ  (0) 2026.02.26