ํŠธ๋ Œ๋“œ-01-ralph-pattern-diagram.svg

๐ŸŽฃ โ€œwhile ๋ฃจํ”„ ํ•˜๋‚˜๊ฐ€ ์™ธ์ฃผ ๊ฐœ๋ฐœํŒ€์„ ๋Œ€์ฒดํ–ˆ๋‹ค.โ€


๐Ÿค” ์ด๊ฒŒ ๋ญ”๋ฐ?

Ralph Wiggum Pattern์€ ์‹ฌ์Šจ ๊ฐ€์กฑ์˜ ๊ทธ ๋ฉ์ฒญํ•œ ๋ž„ํ”„ ์œ„๊ฒ€์—์„œ ์ด๋ฆ„์„ ๋”ฐ์™”๋‹ค.

ํ•ต์‹ฌ์€ ๋‹จ์ˆœํ•˜๋‹ค:

while :; do cat PROMPT.md | claude-code ; done

AI ์—์ด์ „ํŠธ๋ฅผ ๋ฌดํ•œ ๋ฃจํ”„์— ๋„ฃ๊ณ , ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์•Œ์•„์„œ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

Geoffrey Huntley๊ฐ€ 2025๋…„ ์ค‘๋ฐ˜์— ๋Œ€์ค‘ํ™”ํ–ˆ๊ณ , ์ง€๊ธˆ์€ AI ๊ฐœ๋ฐœ์˜ ํ‘œ์ค€ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋๋‹ค.


๐Ÿ’ก ์™œ ์ค‘์š”ํ•ด?

๊ธฐ์กด ๋ฐฉ์‹์˜ ๋ฌธ์ œ

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ AI์—๊ฒŒ ์ง€์‹œ
  2. AI๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑ
  3. ์—๋Ÿฌ ๋ฐœ์ƒ
  4. ๊ฐœ๋ฐœ์ž๊ฐ€ ์—๋Ÿฌ ๋ณต์‚ฌํ•ด์„œ ๋‹ค์‹œ ์ง€์‹œ
  5. 1-4 ๋ฐ˜๋ณตโ€ฆ ๐Ÿ˜ฉ

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ„์† ๊ฐœ์ž…ํ•ด์•ผ ํ–ˆ๋‹ค.

Ralph์˜ ํ•ด๊ฒฐ์ฑ…

  1. AI๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑ
  2. ์—๋Ÿฌ ๋ฐœ์ƒ
  3. AI๊ฐ€ ์Šค์Šค๋กœ ์—๋Ÿฌ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •
  4. ํ…Œ์ŠคํŠธ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
  5. ์™„๋ฃŒ โœ…

๊ฐœ๋ฐœ์ž๋Š” ์ž๋Ÿฌ ๊ฐ€๋„ ๋œ๋‹ค. ๐Ÿ›Œ


๐Ÿ”‘ ํ•ต์‹ฌ ์›๋ฆฌ

โ€๊ฒฐ์ •๋ก ์ ์œผ๋กœ ๋‚˜์œ ๊ฒƒ์ด ๋น„๊ฒฐ์ •๋ก ์  ์„ธ๊ณ„์—์„œ ์•„๋ฆ„๋‹ต๋‹คโ€

Ralph๋Š” ์‹ค์ˆ˜ํ•œ๋‹ค. ๋งŽ์ด ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ํ•ต์‹ฌ์ด๋‹ค.

  • ์‹ค์ˆ˜ โ†’ ์ˆ˜์ • โ†’ ํ•™์Šต โ†’ ๊ฐœ์„ 
  • ์ด ๊ณผ์ •์ด ์ž๋™์œผ๋กœ ๋ฐ˜๋ณต๋จ
  • ๊ฒฐ๊ตญ Eventual Consistency (์ตœ์ข…์  ์ผ๊ด€์„ฑ) ๋‹ฌ์„ฑ

๋งˆ์น˜ ๊ธฐํƒ€ ํŠœ๋‹์ฒ˜๋Ÿผ, Ralph๊ฐ€ ์‚๋—ํ•  ๋•Œ๋งˆ๋‹ค ํ”„๋กฌํ”„ํŠธ๋ฅผ ์กฐ์œจํ•œ๋‹ค.


๐Ÿ› ๏ธ ์„ค์น˜ ๋ฐ ์„ค์ •

์ค€๋น„๋ฌผ

  • Claude Code, Codex, ๋˜๋Š” tool call ์ œํ•œ ์—†๋Š” AI CLI
  • Bash ํ™˜๊ฒฝ
  • PROMPT.md ํŒŒ์ผ

Step 1: ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋งŒ๋“ค๊ธฐ

my-project/
โ”œโ”€โ”€ PROMPT.md           # ํ•ต์‹ฌ ์ง€์‹œ๋ฌธ
โ”œโ”€โ”€ AGENTS.md           # ์—์ด์ „ํŠธ ํ–‰๋™ ๊ทœ์น™  
โ”œโ”€โ”€ specs/              # ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ
โ”‚   โ””โ”€โ”€ feature-1.md
โ””โ”€โ”€ src/                # ์†Œ์Šค ์ฝ”๋“œ

Step 2: PROMPT.md ์ž‘์„ฑ

## ๋‹น์‹ ์˜ ์ž„๋ฌด
 
1. specs/ ํด๋”์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฝ์–ด๋ผ
2. src/์— ๊ตฌํ˜„ํ•˜๋ผ
3. ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ผ
4. ์‹คํŒจํ•˜๋ฉด ์ˆ˜์ •ํ•˜๋ผ
5. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ผ
 
## ๊ทœ์น™
- ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ๋งŒ ๊ตฌํ˜„
- ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ
- ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์Šค์Šค๋กœ ๋””๋ฒ„๊น…

Step 3: ๋ฃจํ”„ ์‹คํ–‰

while :; do cat PROMPT.md | claude-code ; done

๋˜๋Š” ๋” ์ •๊ตํ•˜๊ฒŒ:

while :; do
  cat PROMPT.md | claude-code
  if [ $? -eq 0 ]; then
    echo "โœ… ์™„๋ฃŒ!"
    break
  fi
  sleep 5
done

๐ŸŽฌ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ

์˜ˆ์‹œ 1: ์ƒˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋งŒ๋“ค๊ธฐ

Geoffrey Huntley๋Š” Ralph๋กœ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

๋” ๋†€๋ผ์šด ๊ฑด? ๊ทธ ์–ธ์–ด๋Š” LLM ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ์—†์—ˆ๋‹ค. Ralph๊ฐ€ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊นŒ์ง€ ํ–ˆ๋‹ค.

์˜ˆ์‹œ 2: Y Combinator ํ•ด์ปคํ†ค

YC ํ•ด์ปคํ†ค์—์„œ ํŒ€๋“ค์ด Ralph ํŒจํ„ด์„ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค.

โ€œ์šฐ๋ฆฌ๋Š” ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ while ๋ฃจํ”„์— ๋„ฃ์—ˆ๊ณ , ๊ทธ๊ฒƒ์ด ํ”„๋กœ๋•ํŠธ๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค.โ€

์˜ˆ์‹œ 3: ์™ธ์ฃผ ๋Œ€์ฒด

ํ•œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ Ralph๋ฅผ ๋ฐฐ์šฐ๊ณ  ๋‹ค์Œ ๊ณ„์•ฝ์— ์ ์šฉํ–ˆ๋‹ค.

๊ฒฐ๊ณผ? ๋ฏธ์นœ ROI. ์ด์ œ ๊ทธ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฑด ์˜ค์ง Ralph๋ฟ.


โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

1. ๋ช…ํ™•ํ•œ ์™„๋ฃŒ ์กฐ๊ฑด์ด ํ•„์ˆ˜

Ralph๋Š” โ€œํ…Œ์ŠคํŠธ ํ†ต๊ณผโ€ ๊ฐ™์€ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ๋ชฉํ‘œ๊ฐ€ ์žˆ์„ ๋•Œ ๋น›๋‚œ๋‹ค.

โŒ โ€œ์ข‹์€ ์ฝ”๋“œ ์ž‘์„ฑํ•ด์ค˜โ€ โ†’ ๋ฌดํ•œ ๋ฃจํ”„ โœ… โ€œ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€โ€ โ†’ ๋ช…ํ™•ํ•œ ์ข…๋ฃŒ ์กฐ๊ฑด

2. ๋น„์šฉ ๊ด€๋ฆฌ

๋ฌดํ•œ ๋ฃจํ”„ = ๋ฌดํ•œ API ํ˜ธ์ถœ = ๐Ÿ’ธ

  • ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์„ค์ •
  • ํƒ€์ž„์•„์›ƒ ์ถ”๊ฐ€
  • ๋น„์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•„์ˆ˜

3. ์ ํ•ฉํ•œ ์ž‘์—… ์„ ํƒ

Ralph์— ์ ํ•ฉ:

  • ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ (TDD)
  • ๋นŒ๋“œ/๋ฐฐํฌ ์ž๋™ํ™”
  • ์ฝ”๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
  • ๋ฒ„๊ทธ ์ˆ˜์ •

Ralph์— ๋ถ€์ ํ•ฉ:

  • ์ฐฝ์˜์  ๋””์ž์ธ ๊ฒฐ์ •
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์„ค๊ณ„
  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํŒ๋‹จ

๐Ÿ”„ Two Modes: Planning vs Building

Ralph๋Š” ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ์ž‘๋™ํ•œ๋‹ค:

๋ชจ๋“œ์–ธ์ œ ์‚ฌ์šฉ๋ชฉ์ 
PLANNING๊ณ„ํš์ด ์—†๊ฑฐ๋‚˜ ์˜ค๋ž˜๋จIMPLEMENTATION_PLAN.md ์ƒ์„ฑ
BUILDING๊ณ„ํš์ด ์žˆ์Œ๊ณ„ํš๋Œ€๋กœ ๊ตฌํ˜„ + ์ปค๋ฐ‹

PLANNING ๋ชจ๋“œ:

  • specs/์™€ src/ ๋น„๊ต (Gap ๋ถ„์„)
  • ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋งค๊ฒจ์ง„ TODO ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ
  • ๊ตฌํ˜„ ์—†์Œ, ์ปค๋ฐ‹ ์—†์Œ

BUILDING ๋ชจ๋“œ:

  • ๊ณ„ํš์—์„œ ํƒœ์Šคํฌ ์„ ํƒ
  • ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ โ†’ ์ปค๋ฐ‹
  • ๊ณ„ํš ์—…๋ฐ์ดํŠธ

โœจ ํ•œ์ค„ ์ •๋ฆฌ

โ€œAI๋ฅผ while ๋ฃจํ”„์— ๋„ฃ์–ด๋ผ. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•  ๋•Œ๊นŒ์ง€ ์•Œ์•„์„œ ๋Œ๊ฒŒ ๋†”๋‘ฌ๋ผ. ๋„Œ ์ž๋Ÿฌ ๊ฐ€๋„ ๋œ๋‹ค.โ€


๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ


๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ ๋ชฉ์ฐจ