TDD

GreenBeanยท2021๋…„ 10์›” 6์ผ
0
post-thumbnail

TDD (Test Driven Devlopment)

  • TDD๋ž€ Test Driven Development์˜ ์•ฝ์ž๋กœ 'ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ'์ด๋ผ๊ณ  ํ•จ
  • ๋ฐ˜๋ณต ํ…Œ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ตฌํ˜„

TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹

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

TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์˜ ์žฅ์ 

๋ณด๋‹ค ํŠผํŠผํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ์ฝ”๋“œ ์ƒ์‚ฐ

  • TDD๋Š” ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ ๋ณด์žฅ์„ ๋ช…์‹œํ•˜๋ฏ€๋กœ TDD๋ฅผ ํ†ตํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‹œ ๊ธฐ๋Šฅ๋ณ„ ์ฒ ์ €ํ•œ ๋ชจ๋“ˆํ™”๊ฐ€ ์ด๋ค„์ง
    • ์ด๋Š” ์ข…์†์„ฑ๊ณผ ์˜์กด์„ฑ์ด ๋‚ฎ์€ ๋ชจ๋“ˆ๋กœ ์กฐํ•ฉ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ด๋„ ์†Œํ”„ํŠธ์›จ์–ด ์ „์ฒด ๊ตฌ์กฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ฒŒ ๋จ

์žฌ์„ค๊ณ„ ์‹œ๊ฐ„์˜ ๋‹จ์ถ•

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€๊ธˆ ๋ฌด์—‡์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๋ถ„๋ช…ํžˆ ์ •์˜ํ•˜๊ณ  ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋จ
  • ๋˜ํ•œ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Š” ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ค‘ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ „๋ฐ˜์ ์ธ ์„ค๊ณ„๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ์ผ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ

๋””๋ฒ„๊น… ์‹œ๊ฐ„์˜ ๋‹จ์ถ•

  • ์œ ๋‹› ํ…Œ์ŠคํŒ…์„ ํ•˜๋Š” ์ด์ ์ด๊ธฐ๋„ ํ•จ
    • ์˜ˆ๋ฅผ ๋“ค๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ๋‚˜์˜จ๋‹ค๋ฉด, DB์˜ ๋ฌธ์ œ์ธ์ง€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ ˆ์ด์–ด์˜ ๋ฌธ์ œ์ธ์ง€ UI์˜ ๋ฌธ์ œ์ธ์ง€ ์‹ค์ œ ๋ชจ๋“  ๋ ˆ์ด๋Ÿฌ๋“ค์„ ์ „๋ถ€ ๋””๋ฒ„๊น… ํ•ด์•ผํ•จ
    • ํ•˜์ง€๋งŒ TDD์˜ ๊ฒฝ์šฐ ์ž๋™ํ™” ๋œ ์œ ๋‹›ํ…Œ์ŠคํŒ…์„ ์ „์žฌํ•˜๋ฏ€๋กœ ํŠน์ • ๋ฒ„๊ทธ๋ฅผ ์†์‰ฝ๊ฒŒ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Œ

ํ…Œ์ŠคํŠธ ๋ฌธ์„œ์˜ ๋Œ€์ฒด ๊ฐ€๋Šฅ

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

์ถ”๊ฐ€ ๊ตฌํ˜„์˜ ์šฉ์ดํ•จ

  • ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ์†Œํ”„ํŠธ์›จ์–ด์— ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ฐ€์žฅ ์šฐ๋ ค๋˜๋Š” ์ ์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ๊ธฐ์กด ์ฝ”๋“œ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น ์ง€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ
  • ํ•˜์ง€๋งŒ TDD์˜ ๊ฒฝ์šฐ ์ž๋™ํ™”๋œ ์œ ๋‹› ํ…Œ์ŠคํŒ…์„ ์ „์ œํ•˜๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ๊ธฐ๊ฐ„์„ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ

TDD์˜ ํšจ๊ณผ

1. ์ฝ”๋“œ๊ฐ€ ๋‚ด ์†์„ ๋ฒ—์–ด๋‚˜๊ธฐ ์ „์— ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ํ”ผ๋“œ๋ฐฑ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

  • ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ๋Š” ๋ณดํ†ต โ€˜์ธ์ˆ˜ ํ…Œ์ŠคํŠธโ€™๋ฅผ ํ•จ
  • ์ด๋ฏธ ๋ฐฐ์น˜๋œ ์‹œ์Šคํ…œ์„ ๋Œ€์ƒ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜๋ขฐํ•œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ธ์ง€ ์ฒดํฌํ•˜๋Š” ๊ณผ์ •
  • ์ด๋ฏธ 90% ์ด์ƒ ์™„์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์ •ํ™•ํ•˜๊ฒŒ ์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ์ง„๋‹จํ•˜๊ธฐ๋Š” ํž˜๋“ฌ
  • TDD๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์™„์„ฑ๋˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์†์„ ๋– ๋‚˜๊ธฐ ์ „์— ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ

2. ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๊ฐ€์ง€๋Š” ๋ถˆ์•ˆ์ •์„ฑ์„ ๊ฐœ์„ ํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

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

3. ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

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

4. ๊ฐœ๋ฐœ ๊ณผ์ •์ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์—, ๊ณผ๊ฑฐ ์˜์‚ฌ๊ฒฐ์ •์„ ์‰ฝ๊ฒŒ ์ƒ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.

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

TDD ๊ฐœ๋ฐœ ๋ฐฉ์‹์˜ ๋‹จ์ 

๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๋ฐ”๋กœ ์ƒ์‚ฐ์„ฑ์˜ ์ €ํ•˜

  • ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— TDD์— ๋Œ€ํ•ด ๋ฐ˜์‹ ๋ฐ˜์˜ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
    • ์™œ๋ƒํ•˜๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•˜๊ณ , ์ค‘๊ฐ„์ค‘๊ฐ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ณ ์ณ๋‚˜๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ
  • TDD ๋ฐฉ์‹์˜ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์€ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ์‹์— ๋น„ํ•ด ๋Œ€๋žต 10~30% ์ •๋„๋กœ ๋Š˜์–ด๋‚จ
  • SI ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ๋ณด๋‹ค ๋‚ฉ๊ธฐ์ผ ์ค€์ˆ˜๊ฐ€ ํ›จ์”ฌ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— TDD ๋ฐฉ์‹์„ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

TDD์— ๊ด€ํ•œ ํŽธ๊ฒฌ๊ณผ ์‹ค์ƒ

TDD๋Š” ๋ฌด์กฐ๊ฑด ํ•ด์•ผ ํ•œ๋‹ค?

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

TDD๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐ•๋ฉธํ•œ๋‹ค?

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

TDD๋Š” ํ•ญ์ƒ ๋Š๋ฆฌ๋‹ค?

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

TDD๋ฅผ ํ•˜๊ธฐ ์–ด๋ ค์šด ์ด์œ 

  • ์ด์ œ๊นŒ์ง€ ์ž์‹ ์ด ๊ฐœ๋ฐœํ•˜๋˜ ๋ฐฉ์‹์„ ๋งŽ์ด ๋ฐ”๊ฟ”์•ผ ํ•จ
    • ๋ชธ์— ์ฒด๋“ํ•œ ๊ฒƒ์ด ๋งŽ์„ ์ˆ˜๋ก ๋ฐ”๊พธ๊ธฐ๊ฐ€ ์–ด๋ ค์›€
    • ์˜คํžˆ๋ ค ๊ฐœ๋ฐœ์„ ๋ณ„๋กœ ํ•ด๋ณด์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์—๊ฒ ์ ์šฉํ•˜๊ธฐ ์‰ฌ์›€
  • TDD๋Š” ์ด๋ ‡๊ฒŒ ํ•ด์•ผ๋œ๋‹ค๋Š” ์ด๋ฏธ์ง€/ํ‹€์ด ์žˆ์Œ
    • ๋ฐ˜๋“œ์‹œ ํˆด(๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ)์„ ์จ์„œ ๊ฐœ๋ฐœํ•ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•จ
    • ์ด๋Ÿฌํ•œ ๊ทœ์น™์— ์–ฝ๋งค์ด๋Š” ๊ฒƒ์€ ์• ์ž์ผ ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•จ
    • ๊ฒฐ๊ตญ์—” ๊ทœ์น™์— ์–ฝ๋งค์—ฌ ๋˜‘๊ฐ™์€ ํ…Œ์ŠคํŠธ๋ฅผ copy&pasteํ•จ
    • ๋„๊ตฌ/๊ทœ์น™์— ์ง‘์ฐฉํ•˜๋‹ค ๋ณด๋‹ˆ, TDD๊ฐ€ ์–ด๋ ค์›Œ์ง€๋Š” ๊ฒƒ

ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜์™€ ์žฅ๋‹จ์ 

1. ์ˆ˜๋™ ํ…Œ์ŠคํŠธ

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

2. ํ…Œ์ŠคํŠธ ์ž๋™ํ™”

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

3. ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ

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

4. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

  • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๋Š” ๊ฒ€์ฆ ๋ฐฉ์‹์ด๋ฉฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€(ํ•˜์œ„ ์‹œ์Šคํ…œ)๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ
  • ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋ฐฐ์น˜ํ•ด๋†“๊ณ  ์ง„ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋น„์šฉ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์€ ํŽธ
  • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ๋น„๊ตํ•ด์„œ ๋‹จ์œ„ ์•ˆ์—์„œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฑธ ์ƒ๋Œ€์ ์œผ๋กœ ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ž…์žฅ์—์„œ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ ์ ˆํ•˜๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
  • ํ•˜์ง€๋งŒ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์ด์ƒ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ์‹ ๋ขฐ๋„๋Š” ๋‚ฎ์•„์ง
    • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—์„œ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด๋„ ์ „์ฒด ์‹œ์Šคํ…œ์ด ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ
profile
๐ŸŒฑ Backend-Dev | hwaya2828@gmail.com

0๊ฐœ์˜ ๋Œ“๊ธ€