๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ 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

์†”์งํžˆ ๋งํ•˜์ž๋ฉด

ํ†ตํ™”๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฏธ๊ตญ์ด๋ฉด Dollar, ํ”„๋ž‘์Šค๋ฉด Franc, ํ•œ๊ตญ์ด๋ฉด Won
์ด๋Ÿฐ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํ†ตํ™”๋ฅผ ์ง€์›ํ•ด๋ณด์ž

Dollar ๋ณต์‚ฌ

์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ํ†ตํ™”๋ฅผ, Franc๋ฅผ ์˜ˆ๋กœ ์ง€์›ํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์‚ฌ์‹ค ์ƒ๊ฐํ•ด๋ณด๋ฉด Dollar๋‚˜ Franc์ด๋‚˜ ๋ˆ์ด ํ•˜๋Š” ์ผ์€ ๋‹ค ๋˜‘๊ฐ™๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ผ๋‹จ Dollar๊ฐ€ ํ•˜๋Š” ์ผ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌ ๋ถ™ํ˜€๋„ฃ๊ธฐํ•  ๊ฒƒ์ด๋‹ค.

class Dollar {
  private int amount;

  Dollar(int amount) {
    this.amount = amount;
  };
  // ... ์ƒ๋žต
}

class Franc {
  private int amount;

  Franc(int amount) {
    this.amount = amount;
  };
  // ... ์ƒ๋žต
}

์œ„์˜ ์ฝ”๋“œ๋Š” ๋ณต์‚ฌ ๋ถ™ํ˜€๋„ฃ๊ธฐ๋ผ๋Š” ์ฃ„์•…์„ ์ €์งˆ๋ €๋‹ค.
ํ•˜์ง€๋งŒ ์ด์ฏค์—์„œ TDD ์‚ฌ์ดํด์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด์ž.

  1. ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  2. ์ปดํŒŒ์ผ๋˜๊ฒŒ ํ•˜๊ธฐ
  3. ์‹คํŒจํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰
  4. ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ฆ
  5. ์ค‘๋ณต ์ œ๊ฑฐ (๋ฆฌํŒฉํ† ๋ง)

์ฒ˜์Œ ๋„ค ๋‹จ๊ณ„๋Š” ๋น ๋ฅด๊ฒŒ์ง„ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ์ž‘์„ฑ๊ณผ ์ปดํŒŒ์ผ ๋˜๊ฒŒ ํ•˜๊ธฐ

์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ Dollar ํด๋ž˜์Šค๋ฅผ ์ž˜ ์ž‘์„ฑํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์‚ฌ ๋ถ™ํ˜€๋„ฃ๊ธฐ๋ฅผ ํ•œ๋‹ค๋ฉด ์ •ํ™•ํžˆ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๊ฒŒ ๋ฐ”๋กœ TDD๊ฐ€ ๊ฐ–๋Š ์ˆœ๊ธฐ๋Šฅ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

์‹คํŒจํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰

์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ–ˆ์œผ๋‹ˆ ์•„๋งˆ ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์‹คํŒจํ•  ๊ฒƒ์ด๋‹ค.
์™œ? ํด๋ž˜์Šค ๋„ค์ž„์ด ์ค‘๋ณต๋˜์—ˆ์œผ๋‹ˆ.
๊ทธ๋Ÿผ ์‹คํŒจ๋ฅผ ์˜ˆ์ƒํ•˜๊ณ  ์‹คํ–‰ํ•˜์ž.

์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ฆ

์‹คํŒจ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ด์ œ ์‹คํ–‰๋˜๊ฒŒ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.
Dollar๊ฐ€ ์ค‘๋ณต๋˜์—ˆ์œผ๋‹ˆ Dollar๋ฅผ Franc์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์ž.

์ค‘๋ณต ์ œ๊ฑฐ

์ผ„ํŠธ ๋ฒก์€ 1 ~ 4๋‹จ๊ณ„ ๊นŒ์ง€๋ฅผ ์ตœ๋Œ€ํ•œ ๋น ๋ฅธ ์‹œ๊ฐ„์•ˆ์— ๋๋‚ด๋ผ๊ณ  ํ•œ๋‹ค.

์šฐ์„  ๊ณต์šฉ equals๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์—์„œ ๋ถ€ํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์‹คํ˜„ํ•ด๋ณด์ž.

๋Œ“๊ธ€