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

์ด ๋ฌธ์„œ๋Š” Red-Green-Refactor๋ฅผ Codex์™€ ๊ฒฐํ•ฉํ•ด ์ฒ˜์Œ ์‚ฌ์šฉ์ž๋„ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ •๋ฆฌํ•œ ์‹ค์ „ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์•ˆ๋‚ด: ๋ณธ๋ฌธ์€ ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ์„ ์ž‘์„ฑํ–ˆ๊ณ , ๊ณต๊ฐœ๋œ ์›๋ฌธ/๊ณต์‹ ์ž๋ฃŒ๋ฅผ ๊ต์ฐจ ํ™•์ธํ•ด ์‹ค๋ฌด ์šด์˜ ๊ด€์ ์œผ๋กœ ๋ณด๊ฐ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

flowchart LR
A[Red: ์‹คํŒจ ํ…Œ์ŠคํŠธ] --> B[Green: ์ตœ์†Œ ๊ตฌํ˜„]
B --> C[Refactor: ๊ตฌ์กฐ ์ •๋ฆฌ]
C --> D[ํšŒ๊ท€ ๊ฒ€์ฆ]
D --> A

๐Ÿง  ์น ํŒ ์น˜ํŠธ์‹œํŠธ

  • TDD์˜ ๋ชฉ์ ์€ ๋А๋ฆฌ๊ฒŒ ์งœ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋œ ๊นจ์ง€๊ฒŒ ์งœ๋Š” ๊ฒƒ
  • Green ๋‹จ๊ณ„์—์„œ ์š•์‹ฌ๋‚ด๋ฉด ํšŒ๊ท€๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค
  • Refactor๋Š” ๋™์ž‘ ๋ณ€๊ฒฝ์ด ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ ์ •๋ฆฌ๋‹ค
  • Codex๋Š” ์ƒ์„ฑ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฃจํ”„ ๊ฐ€์†๊ธฐ๋‹ค
  • ํ…Œ์ŠคํŠธ ๋กœ๊ทธ๊ฐ€ ๊ณง ํŒ€ ์ง€์‹์ด๋‹ค

40๋ถ„ ์‹ค์Šต ๋ฃจํ”„

1) Red: ์‹คํŒจ ํ…Œ์ŠคํŠธ 3๊ฐœ ๋จผ์ € (10๋ถ„)

๊ณผ์ œ ์˜ˆ์‹œ: ๋ฌธ์ž์—ด ํŒŒ์„œ ๊ทœ์น™ 3๊ฐœ ์ถ”๊ฐ€

  • ๋นˆ ์ž…๋ ฅ ์˜ˆ์™ธ
  • ๊ตฌ๋ถ„์ž ์—†๋Š” ์ž…๋ ฅ ์ฒ˜๋ฆฌ
  • ์ž˜๋ชป๋œ ํฌ๋งท ์ฒ˜๋ฆฌ

ํ•ต์‹ฌ์€ ๊ตฌํ˜„ ์ „์— ์‹คํŒจ๋ฅผ ๋ช…ํ™•ํžˆ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2) Green: ์ตœ์†Œ ๊ตฌํ˜„์œผ๋กœ ํ†ต๊ณผ (15๋ถ„)

์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ธฐ๋Šฅ ํ™•์žฅ/์ตœ์ ํ™”๋ฅผ ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. โ€œํ†ต๊ณผโ€๋งŒ ๋ชฉํ‘œ๋กœ ๋‘๋Š” ํŽธ์ด ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

3) Refactor: ์ฝ๊ธฐ ์ข‹๊ฒŒ ์ •๋ฆฌ (10๋ถ„)

์ค‘๋ณต ์ œ๊ฑฐ, ํ•จ์ˆ˜ ๋ถ„๋ฆฌ, ๋„ค์ด๋ฐ ์ •๋ฆฌ๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ง ๋ณ€๊ฒฝ์€ ๋‹ค์Œ ์‚ฌ์ดํด๋กœ ๋„˜๊น๋‹ˆ๋‹ค.

4) ํšŒ๊ท€ ๊ฒ€์ฆ (5๋ถ„)

  • ์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰
  • ๋ฆฐํŠธ ์‹คํ–‰
  • ๋ณ€๊ฒฝ ๋ฒ”์œ„ ์žฌํ™•์ธ

๋ฏธ๋‹ˆ ์‚ฌ๋ก€ 2๊ฐ€์ง€

์‚ฌ๋ก€ A) ๊ตฌํ˜„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋˜ ํŒ€

๋น ๋ฅด๊ฒŒ ๊ธฐ๋Šฅ์„ ๋ถ™์˜€์ง€๋งŒ ํšŒ๊ท€ ๋ฒ„๊ทธ๊ฐ€ ๋ฐ˜๋ณต๋์Šต๋‹ˆ๋‹ค. ์‹คํŒจ ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์“ฐ๋Š” ๊ทœ์น™์œผ๋กœ ๋ฐ”๊พผ ๋’ค ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์ด ์ค„๊ณ  ๋ฐฐํฌ ์•ˆ์ •์„ฑ์ด ์˜ฌ๋ผ๊ฐ”์Šต๋‹ˆ๋‹ค.

์‚ฌ๋ก€ B) Refactor ๋‹จ๊ณ„์—์„œ ๋กœ์ง๊นŒ์ง€ ๋ฐ”๊พธ๋˜ ํŒ€

๋ฆฌํŒฉํ† ๋ง ์ปค๋ฐ‹๊ณผ ๊ธฐ๋Šฅ ์ปค๋ฐ‹์ด ์„ž์—ฌ ์›์ธ ์ถ”์ ์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„ ๋ถ„๋ฆฌ๋ฅผ ๊ฐ•์ œํ•œ ๋’ค ๋””๋ฒ„๊น… ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต๋…ธํŠธ ํ…œํ”Œ๋ฆฟ

  • ๋„๊ตฌ: VS Code, Codex, pytest
  • ์ž…๋ ฅ: ๊ธฐ๋Šฅ ๊ทœ์น™ 1๊ฑด
  • ์‹คํ–‰: Red โ†’ Green โ†’ Refactor โ†’ ํšŒ๊ท€ ๊ฒ€์ฆ
  • ์„ฑ๊ณต ํŒ์ •: ์ „์ฒด ํ…Œ์ŠคํŠธ ํ†ต๊ณผ + ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†๋Š” ๋ฆฌํŒฉํ† ๋ง
  • ์ œ์ถœ๋ฌผ: ํ…Œ์ŠคํŠธ ๋กœ๊ทธ, ํ•ต์‹ฌ diff, ํšŒ๊ณ  5์ค„

20๋ถ„ ๋„์ž… ๋ฃจํ‹ด

  • 8๋ถ„: ์˜ค๋Š˜ ์ˆ˜์ •ํ•  ๊ธฐ๋Šฅ์˜ ์‹คํŒจ ํ…Œ์ŠคํŠธ 1~2๊ฐœ ์ž‘์„ฑ
  • 8๋ถ„: ์ตœ์†Œ ๊ตฌํ˜„์œผ๋กœ ํ†ต๊ณผ
  • 4๋ถ„: ์ค‘๋ณต ์ฝ”๋“œ/๋„ค์ด๋ฐ ์ •๋ฆฌ

๋‹ค์Œ ์ฝ๊ธฐ