๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- ๊ธฐํƒ€

[๊ฐœ๋ฐœ์ž ์ฑ…์ฝ๊ธฐ] ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ - ์ผ„ํŠธ ๋ฒก (ํƒ€๋ฝํ•œ ๊ฐ์ฒด)

by Wonit 2021. 4. 10.

ํ•ด๋‹น ๊ธ€์€ Kent-Beck์˜ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ By Example ์ด๋ผ๋Š” ์ฑ…์„ ์ฝ๊ณ  ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ๋ฐ ํšŒ๊ณ ํ•˜๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ YES 24 ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ - Test Driven Development By Example (Kent-Beck)

  • ์ธ์‚ฌ์ดํŠธ(insight)
  • ์ง€์€์ด: Kent-Beck
  • ์—ฎ์€์ด: ๊น€์ฐฝ์ค€, ๊ฐ•๊ทœ์—ญ
  • ์ถœ๊ฐ„์ผ: 2014.02.15

2์žฅ ํƒ€๋ฝํ•œ ๊ฐ์ฒด

  • TDD ์ตœ์ข… ๋ชฉํ‘œ
    • ๋ถ„ํ•  ์ •๋ณต
  • Green ์‚ฌ์ดํด๋กœ ๊ฐ€๊ธฐ ์œ„ํ•œ ๋น ๋ฅธ ๋ฐฉ๋ฒ•
    • ์ƒ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
    • ๋ช…๋ฐฑํ•œ ๊ตฌํ˜„ ์‚ฌ์šฉํ•˜๊ธฐ
  • ์ฝ”๋“œ์˜ ๋ถ€์ž‘์šฉ ์ƒ๊ฐํ•˜๊ธฐ

TDD ์ตœ์ข… ๋ชฉํ‘œ

TDD ์˜ ์ตœ์ข… ๋ชฉํ‘œ๋Š” Clean Code That Works ์ด๋‹ค.
์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ Clean Code That Works๋ฅผ ํ•œ ๋ฒˆ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ Clean Code์™€ Code That Works๋ฅผ ์„œ๋กœ ๋‚˜๋ˆ ์„œ ์ƒ๊ฐํ•˜์ž๋Š” ๊ฒƒ์ด๋‹ค.
์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•„๋Š” ๋ถ„ํ•  ์ •๋ณต์˜ ๊ธฐ๋ฒ•์ด๋‹ค.

Green ์‚ฌ์ดํด๋กœ ๊ฐ€๊ธฐ ์œ„ํ•œ ๋น ๋ฅธ ๋ฐฉ๋ฒ•

  1. ์ƒ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
  2. ๋ช…๋ฐฑํ•œ ๊ตฌํ˜„ ์‚ฌ์šฉํ•˜๊ธฐ

์šฐ๋ฆฌ๊ฐ€ Red ์‚ฌ์ดํด์—์„œ ๊ตฌํ˜„์„ ํ•˜๋‹ค๊ฐ€ ์žฌ๋น ๋ฅด๊ฒŒ Green์œผ๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” 3๊ฐœ์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
3๋ฒˆ์งธ๋Š” ๋‹ด์— ์„ค๋ช…ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ๋Š” ์•ž์„œ ํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ผ๋‹จ ํ†ต๊ณผ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ.
๋‘ ๋ฒˆ์งธ๋Š” ๋‚ด๊ฐ€ ์ถฉ๋ถ„ํžˆ ํ•ด๋‹น ๋กœ์ง์„ ํ•ธ๋“ค๋งํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ตฌํ˜„ํ•˜๊ณ  ํ†ต๊ณผ๋˜๊ฒŒ ํ•˜์ž.
๊ทผ๋ฐ ๊ทธ๊ฒŒ ํž˜๋“ค๋‹ค๋ฉด ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜์ž.
์ผ„ํŠธ ๋ฒก๋„ 2๊ฐœ๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค

์ฝ”๋“œ์˜ ๋ถ€์ž‘์šฉ ์ƒ๊ฐํ•˜๊ธฐ

์ด๋ฒˆ ์žฅ์—์„œ๋Š” Dollor๊ฐ€ ๋ถ€์ž‘์šฉ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜ˆ์ธกํ•˜๊ณ  ์ด๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•˜์˜€๋‹ค.
์ด๋Ÿฐ ๊ณผ์ •์ด ์žฆ์•„์งˆ ์ˆ˜๋ก ์‹ค์ œ ์„ค๊ณ„์—์„œ ์œ„ํ˜‘ ์š”์ธ์„ ์ธ์ง€ํ•˜๋Š” ๋ฐ์— ๋„์›€์ด ๋œ๋‹ค.
Dollor์˜ ๋ถ€์ž‘์šฉ์€ ํ•œ ๋ฒˆ ๊ฐ’์ด ์„ธํŒ…๋œ๋‹ค๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด Dollar five = new Dollar(5)์™€ ๊ฐ™์ด.
ํ•ด๋‹น ๊ฐ์ฒด์˜ amount = 5๋กœ ๊ณ ์ •์ด ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  times() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ amount์˜ ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š”๋ฐ, ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ amount *= times ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ดˆ์— 5๋ผ๊ณ  ์ง€์ •ํ•œ five ๊ฐ์ฒด๋Š” ์ตœ์ดˆ์— 5๋ผ๋Š” ์ˆ˜๋ฅผ ๋„ฃ์—ˆ๋˜ ์™„๊ฒฐํ•œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋‹ค.

๋Œ“๊ธ€