๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ‘‰ Chapter 5: ๊ธฐ์ˆ  ์‹ค์ฒœ ๋ฐฉ๋ฒ•

  • ๊ธฐ์ˆ  ์‹ค์ฒœ ๋ฐฉ๋ฒ•์ด์•ผ๋ง๋กœ ์• ์ž์ผ์˜ ์ง„์งœ ํ•ต์‹์ด๋‹ค.
  • TDD์™€ ๋ฆฌํŒฉํ„ฐ๋ง, ๋‹จ์ˆœํ•œ ์„ค๊ณ„, ์‹ฌ์ง€์–ด ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋„ ์—†๋‹ค๋ฉด, ์• ์ž์ผ์€ ์›๋ž˜ ์˜๋„์™€๋Š” ๋‹ฌ๋ฆฌ ์“ธ๋ชจ์—†๋Š” ๋นˆ ๊ป๋ฐ๊ธฐ๊ฐ€ ๋˜๊ณ  ๋งŒ๋‹ค.

๐Ÿ“š ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœโ€‹

  • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(Test-Driven Development, TDD)์€ ์ œ๋Œ€๋กœ ์„ค๋ช…ํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ์ฑ… ํ•œ ๊ถŒ ํ•„์š”ํ•  ๋งŒํผ ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ด ๋งŽ๊ณ  ๋ณต์žกํ•œ ์ฃผ์ œ์ด๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๋ณต์‹ ๋ถ€๊ธฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋™์ž‘์„ ๋‘ ๋ฒˆ์”ฉ ์ž…๋ ฅํ•œ๋‹ค.
  • ํ•œ ๋ฒˆ์€ ํ…Œ์ŠคํŠธ๋กœ, ๊ทธ๋ฆฌ๊ณ  ํ•œ ๋ฒˆ์€ ์ด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ œํ’ˆ ์ฝ”๋“œ์ด๋‹ค.
  • ๋‘ ๋ฒˆ์˜ ์ž…๋ ฅ์€ ์„œ๋กœ ๋”ฑ ๋งž์•„์•ผ ํ•œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” TDD๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ, ๊ธฐ๋Šฅ์„ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ๋งŒ ์ถ”๊ฐ€ํ•˜๋ผ๊ณ  ๋ฐฐ์šด๋‹ค. ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋จผ์ € ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ , ์ด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ œํ’ˆ ์ฝ”๋“œ ํ˜•ํƒœ๋กœ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ฅ TDD์˜ ์„ธ๊ฐ€์ง€ ๊ทœ์น™โ€‹

  1. ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์“ฐ๊ธฐ ์ „์— ์ œํ’ˆ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์“ฐ๋ฉด ์•ˆ ๋œ๋‹ค.
  2. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์“ธ ๋•Œ๋Š” ์‹คํŒจํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์ด ์“ฐ๋ฉด ์•ˆ ๋œ๋‹ค. ์ปดํŒŒ์ผ ์‹คํŒจ๋„ ์‹คํŒจ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  3. ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ฝ”๋“œ๋ณด๋‹ค ๋” ๋งŽ์€ ์ œํ’ˆ ์ฝ”๋“œ๋ฅผ ์“ฐ๋ฉด ์•ˆ ๋œ๋‹ค.

๐Ÿ”ฅ ๋””๋ฒ„๊น…โ€‹

  • ๋””๋ฒ„๊ฑฐ์— ๋Šฅ์ˆ™ํ•ด์ง€๋Š” ๋ฐฉ๋ฒ•์€ ์‹ค์ œ๋กœ ๋””๋ฒ„๊น…์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์“ฐ๋Š” ๊ฒƒ๋ฐ–์— ์—†๋‹ค.
  • ๋””๋ฒ„๊น…์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์“ด๋‹ค๋Š” ๊ฒƒ์€ ์–ธ์ œ๋‚˜ ๊ทธ๋งŒํผ ๋ฒ„๊ทธ๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด, ๋””๋ฒ„๊ฑฐ๋ฅผ ์“ธ ์ผ์ด ๋ณ„๋กœ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊ฑฐ์— ์ต์ˆ™ํ•ด์งˆ ์ˆ˜๊ฐ€ ์—†๋‹ค.
  • ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ์‹ค์ฒœํ•˜๋ฉด ๋ฒ„๊ทธ์˜ ํšŸ์ˆ˜๋‚˜ ์‹ฌ๊ฐํ•œ ์ •๋„๋Š” ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ฅ ๋ฌธ์„œํ™”โ€‹

  • ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋‹ค ๋ณด๋ฉด ๋งŒ๋“ค์–ด์ง€๋Š” ํ…Œ์ŠคํŠธ๋Š” ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์ฝ”๋“œ ์˜ˆ์ œ๊ฐ€ ๋œ๋‹ค.
  • ํ…Œ์ŠคํŠธ๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ์ฃผ๊ณ , ์ด ํ•จ์ˆ˜๊ฐ€ ๋˜์ง€๋Š” ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ์ค„ ๊ฒƒ์ด๋‹ค.
  • ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ์˜ ํ•œ ํ˜•ํƒœ์ด๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์™„๋ฒฝํ•œ ํ˜•์‹์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ฝ”๋“œ ํ˜•ํƒœ์ผ ๊ฒƒ์ด๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ๋ฐ”๋กœ ๊ทธ๋ ‡๋‹ค.
  • ํ…Œ์ŠคํŠธ๋Š” ์‹œ์Šคํ…œ ์ค‘ ์ž‘์€ ๋ถ€๋ถ„์˜ ๋™์ž‘์„ ์„ค๋ช…ํ•˜๋Š” ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ ์กฐ๊ฐ์ผ๋ฟ์ด๋‹ค.

๐Ÿ”ฅ ์žฌ๋ฏธโ€‹

  • ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ๋”ฐ๋ผ์„œ ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์ž‘์„ฑใ…‡ํ•˜๋ฉด ์žฌ๋ฏธ์žˆ๋‹ค.
  • ์‹œ๊ฐ„ ๋•Œ์šฐ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฌด์–ธ๊ฐ€ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ผ ๊ฐ™์ด ๋Š๊ปด์งˆ ๊ฒƒ์ด๋‹ค.

๐Ÿ”ฅ ์™„๋ฒฝํ•จโ€‹

  • ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ํž˜๋“  ์ด์œ ๋Š” ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์„ค๊ณ„ํ•  ๋•Œ๋„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ํ…Œ์ŠคํŠธ์— ๊ตฌ๋ฉ์„ ๋‚จ๊ฒจ๋†“๊ฒŒ ๋˜์–ด ๋‚˜์ค‘์— ๋Œ์•„์™€์„œ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ž๊ธฐ ํ•ฉ๋ฆฌํ™”๋ฅผ ํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด ๋ฐฐํฌํ•  ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ์–ด์จŒ๋“  ์•„๋ฌด๋ฆฌ ์„ฑ์‹คํ•˜๊ฒŒ ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋”๋ผ๋„ 100% ์™„๋ฒฝํ•œ ํ…Œ์ŠคํŠธ ๋ฌถ์Œ์ด ๋งŒ๋“ค์–ด์ง€์ง€๋Š” ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ๊ผญ 100%์˜ ์™„๋ฒฝํ•จ์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ปค๋ฒ„๋ฆฌ์ง€(coverage)๊ฐ€ 90%๋Œ€ ํ›„๋ฐ˜ ์ •๋„๋ฉด ์ถฉ๋ถ„ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ •๋„๋Š” ๋‹น์—ฐํžˆ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ํŒ€ ๋‚ด๋ถ€์šฉ ์ง€ํ‘œ์ด์ง€ ๊ด€๋ฆฌ ์ง€ํ‘œ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” ์•„๋งˆ ์ด ์ˆซ์ž๊ฐ€ ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์ œ๋Œ€๋กœ ์•Œ์ง€๋„ ๋ชปํ•  ๊ฒƒ์ด๋‹ค.
  • ๊ด€๋ฆฌ์ž๋Š” ํ…Œ์ŠคํŠธ ์ปค๋ฒ„์ง€๋ฅผ ๋ชฉํ‘œ๋‚˜ ๋ชฉ์ ์œผ๋กœ ์‚ผ์•„์„œ๋Š” ์•ˆ ๋œ๋‹ค. ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ํŒ€์˜ ํ…Œ์ŠคํŠธ ์ „๋žต์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ๋‚ฎ๋‹ค๊ณ  ๋นŒ๋“œ์— ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์•„์„œ๋Š” ์•ˆ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋‹จ์–ธ๋ฌธ๋„ ์—†์ด ํ…Œ์ŠคํŠธ๋ฅผ ๋„ฃ์–ด ๋ฒ„๋ฆด ๊ฒƒ์ด๋‹ค.
  • ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๊นŠ์€ ์ง€์‹์ด ์žˆ์–ด์•ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ณต์žกํ•œ ์ฃผ์ œ๋‹ค. ์ ˆ๋Œ€ ๊ด€๋ฆฌ์šฉ ์ง€ํ‘œ๋กœ ์‚ผ์•„์„œ๋Š” ์•ˆ ๋œ๋‹ค.

๐Ÿ”ฅ ์„ค๊ณ„โ€‹

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

๐Ÿ”ฅ ์šฉ๊ธฐโ€‹

  • ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์€ ๋””๋ฒ„๊น…์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์•Œ๋งž์€ ์ข‹์€ ํ’ˆ์งˆ์˜ ๋ฌธ์„œ๊ฐ€ ์ƒ๊ธฐ๊ณ , ์žฌ๋ฏธ์žˆ๋Š” ๋ฐ๋‹ค๊ฐ€ ์™„๋ฒฝํ•จ๋„ ์–ป์„ ์ˆ˜ ์žˆ๊ณ , ์‹œ์Šคํ…œ๋„ ์ž˜ ๋ถ„๋ฆฌ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ํ˜œํƒ์€ ์–ด๋””๊นŒ์ง€๋‚˜ ๋ถ€์ฐจ์ ์ธ ๊ฒƒ์ด๊ณ  TDD๋ฅผ ํ•˜๋Š” ์ง„์ •ํ•œ ์ด์œ ๋Š” ์šฉ๊ธฐ์ด๋‹ค.
  • ์—‰๋ง์ธ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์ฝ”๋“œ๊ฐ€ ๋ง๊ฐ€์งˆ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ๋•Œ๋ฌธ์— ๋’ท๊ฑธ์Œ์งˆ ์น˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ์‹คํŒจํ•œ๋‹ค.
  • ์™„๋ฒฝํ•œ ํ…Œ์ŠคํŠธ ๋ฌถ์Œ์ด ์žˆ์–ด์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฑฐ๋ผ๊ณ  ์•ˆ์‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๋์„๊นŒ?
  • ์™„๋ฒฝํ•œ ํ…Œ์ŠคํŠธ ๋ฌถ์Œ์ด ์žˆ์œผ๋ฉด ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๋Š” ๋‘๋ ค์›€์ด ์‚ฌ๋ผ์ง„๋‹ค. ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋‘๋ ค์›€์ด ์‚ฌ๋ผ์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.
  • ์ด๊ฒƒ์ด TDD๋ฅผ ํ•˜๋Š” ์ด์œ ๊ณ  TDD๋Š” ์šฉ๊ธฐ๋ฅผ ์ค€๋‹ค.

๐Ÿ“š ๋ฆฌํŒฉํ„ฐ๋งโ€‹

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

๐Ÿ”ฅ ๋นจ๊ฐ•/์ดˆ๋ก/๋ฆฌํŒฉํ„ฐ๋งโ€‹

  • ๋ณธ์งˆ์ ์œผ๋กœ ๋ฆฌํŒฉํ„ฐ๋ง์€ TDD์˜ ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์„ ๋ฐ˜๋ณตํ•จ์œผ๋กœ์จ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • ๋ฆฌํŒฉํ„ฐ๋ง์—์„œ๋Š” ๋นจ๊ฐ•/์ดˆ๋ก/๋ฆฌํŒฉํ„ฐ๋ง ์ฃผ๊ธฐ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  1. ๋จผ์ €, ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. (Red)
  2. ๊ทธ๋ฆฌ๊ณ  ์ด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. (Green)
  3. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค. (Refactoring)
  4. 1๋‹จ๊ณ„๋กœ ๋Œ์•„๊ฐ„๋‹ค.
  • ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๋Š” ๊ณผ์—…์„ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๊ณผ ์ฝ”๋“œ ์ •๋ฆฌํ•˜๊ธฐ๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ธก๋ฉด์œผ๋กœ ๋ถ„๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค.
  • ๋ฆฌํŒฉํ„ฐ๋ง์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์ผ์ •์— ๋‚˜ํƒ€๋‚˜์„œ๋Š” ์•ˆ ๋œ๋‹ค. ๋ฆฌํŒฉํ„ฐ๋ง์€ ๊ณ„ํš์„ ์žก๊ณ  ํ•˜๋Š” ํ™œ๋™์ด ์•„๋‹ˆ๋‹ค.
  • ๋ฆฌํŒฉํ„ฐ๋งํ•  ์‹œ๊ฐ„์„ ๋”ฐ๋กœ ํ• ๋‹นํ•ด์„œ๋„ ์•ˆ ๋œ๋‹ค.
  • ๋ฆฌํŒฉํ„ฐ๋ง์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ช‡ ๋ถ„๋งˆ๋‹ค, ํ˜น์€ ๋ช‡ ์‹œ๊ฐ„๋งˆ๋‹ค ํ•˜๋Š” ์ผ์ƒ์ ์ธ ์ž‘์—…์˜ ์ผ๋ถ€์ผ ๋ฟ์ด๋‹ค.

๐Ÿ”ฅ ๋” ํฐ ๋ฆฌํŒฉํ„ฐ๋งโ€‹

  • ๊ฐ€๋”์€ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋ฐ”๋€Œ์–ด์„œ ํ˜„์žฌ์˜ ์„ค๊ณ„๋‚˜ ๊ตฌ์„ฑ์ด ๋”๋Š” ์ตœ์ ์ด ์•„๋‹ˆ๊ฒŒ ๋  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ๊ฝค ๋งŽ์ด ๋ฐ”๊ฟ”์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ด๋Ÿฐ ๋ณ€๊ฒฝ๋„ ๋นจ๊ฐ•/์ดˆ๋ก/๋ฆฌํŒฉํ„ฐ๋ง ์ฃผ๊ธฐ ์•ˆ์—์„œ ์ผ์–ด๋‚˜์•ผ ํ•œ๋‹ค.

๐Ÿ“š ๋‹จ์ˆœํ•œ ์„ค๊ณ„โ€‹

  • ๋‹จ์ˆœํ•œ ์„ค๊ณ„(Simple Design) ์‹ค์ฒœ ๋ฐฉ๋ฒ•์€ ๋ฆฌํŒฉํ„ฐ๋ง์˜ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋‹ค.
  • ๋‹จ์ˆœํ•œ ์„ค๊ณ„๋Š” ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ณ , ์ž‘๊ณ , ํ‘œํ˜„๋ ฅ์ด ๋›ฐ์–ด๋‚œ ๊ตฌ์กฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•˜๋Š” ์‹ค์ฒœ ๋ฐฉ๋ฒ•์ด๋‹ค.
  1. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ๊ฒƒ
  2. ์˜๋„๋ฅผ ๋“œ๋Ÿฌ๋‚ผ ๊ฒƒ
  3. ์ค‘๋ณต์„ ์—†์•จ ๊ฒƒ
  4. ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ค„์ผ ๊ฒƒ
  • 1๋ฒˆ์€ ์ž๋ช…ํ•˜๋‹ค. ์ฝ”๋“œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•œ๋‹ค. ์ฝ”๋“œ๋Š” ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค.
  • 2๋ฒˆ์€ ์ฝ”๋“œ๊ฐ€ ์ผ๋‹จ ์ž‘๋™ํ•˜๋ฉด ๋‹ค์Œ์œผ๋กœ ํ‘œํ˜„๋ ฅ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜๋„๋ฅผ ๋“ค์–ด๋‚ด์•ผ ํ•œ๋‹ค. ์ด ๊ทœ์น™ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜๊ณ  ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฆฌํŒฉํ„ฐ๋ง์„ ๋งŽ์ด ํ•˜๊ฒŒ ๋œ๋‹ค.
  • 3๋ฒˆ์€ ์ฝ”๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ํ‘œํ˜„๋ ฅ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ํ›„, ์ฝ”๋“œ ๋‚ด์˜ ์ค‘๋ณต์„ ์ฐพ์•„์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด ๊ณผ์ • ๋™์•ˆ ์ด๋ฃจ์–ด์ง€๋Š” ๋ฆฌํŒฉํ„ฐ๋ง์€ ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๋‹ค.
  • 4๋ฒˆ์€ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ํ›„์—๋Š”, ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜, ๋ณ€์ˆ˜ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋‹จ์ˆœํ•œ ์„ค๊ณ„์˜ ๋ชฉํ‘œ๋Š” ์ฝ”๋“œ์˜ ์„ค๊ณ„ ๋ฌด๊ฒŒ๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ”ฅ ์„ค๊ณ„ ๋ฌด๊ณ„โ€‹

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

๐Ÿ“š ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐโ€‹

  • ์ผ๋‹จ ๋จผ์ € ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ผญ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋„ ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ•์š”ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.
  • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ž ๊น์‹ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ฐจ์ง€ํ•˜๋Š” ์—…๋ฌด ๋น„์ค‘์€ 50% ์ •๋„๊ฐ€ ์ข‹๋‹ค.

๐Ÿ”ฅ ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?โ€‹

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

๐Ÿ”ฅ ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ์ด์œ โ€‹

  • ๋งค ์ˆœ๊ฐ„ ํ˜‘๋ ฅํ•˜๋ฉฐ ์ผํ•œ๋‹ค.
  • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ตฌ์„ฑ์›๋ผ๋ฆฌ ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ , ์ง€์‹์˜ ์นธ๋ง‰์ด๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๊ฒŒ ๋งŒ๋“œ๋Š” ๋‹จ์—ฐ์ฝ” ์ตœ๊ณ ์˜ ๋ฐฉ๋ฒ•์ด๋‹ค.

๐Ÿ”ฅ ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐโ€‹

  • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๋™์•ˆ ๋‘ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋“œ๋ฅผ ํ•จ๊ป˜ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ด ๊ณผ์ •์—์„œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ฆฌ๋ทฐํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋ฆฌ๋ทฐ๋Š” ํŒ€์˜ ์ฝ”๋“œ ๊ทœ์น™์„ ์ง€์ผฐ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ธฐ๊ณ„์ ์ธ ๊ฒ€๊ฐ€์‚ฌ ์•„๋‹ˆ๋‹ค.
  • ์•ž์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ”๊พธ์–ด ๊ฐ€์•ผ ํ• ์ง€๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ํ˜„์žฌ ์ฝ”๋“œ์˜ ์ƒํƒœ๋ฅผ ๊ฒ€ํ† ํ•˜๊ฒŒ ๋œ๋‹ค.

๐Ÿ”ฅ ๋น„์šฉ์€?โ€‹

  • ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋น„์šฉ์€ ์ธก์ •ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  • ๊ฐ€์žฅ ๋ˆˆ์— ๋„๋Š” ๋น„์šฉ์€ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ๋‘ ์‚ฌ๋žŒ์ด ์ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ง์ ‘์ ์ธ ๋น„์šฉ ์ฆ๊ฐ€๋Š” 15% ์ •๋„๋ผ๊ณ  ํ•œ๋‹ค.
  • ์—…๋ฌด ์‹œ๊ฐ„์˜ 50%๋ฅผ ์ง์„ ์ง€์–ด ์ผํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ๋Œ€์ถฉ ์ƒ์‚ฐ์„ฑ์ด 8% ์ •๋„์ด๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์„œ๋กœ ๊ฐ€๋ฅด์ณ ์ฃผ๋ฉฐ ์ด๋ฃจ์–ด์ง€๋Š” ์ง€์‹ ๊ตํ™˜์ด๋‚˜, ๊ฐ•๋„ ๋†’์€ ํ˜‘์—…์—์„œ ์˜ค๋Š” ์ด๋“๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ”ฅ ๋‘˜์ด์„œ๋งŒ?โ€‹

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

๐Ÿ”ฅ ๊ด€๋ฆฌ์žโ€‹

  • ์ ˆ๋Œ€, ์ ˆ๋Œ€, ์ ˆ๋Œ€, ์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋„ ๋˜๋Š”์ง€ ํ—ˆ๋ฝ๋ฐ›์ง€๋ง๋ผ.
  • ์•„๋‹ˆ๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋„ ๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•ด๋„ ๋˜๋Š”์ง€ ๋“ฑ๋“ฑ... ๋‹น์‹ ์€ ์ „๋ฌธ๊ฐ€๋‹ค. ๋‹น์‹ ์ด ๊ฒฐ์ •ํ•˜๋ผ.