๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Programming

[CS] TDD(Test-Driven-Development)๋ž€?

by Fomagran ๐Ÿ’ป 2021. 6. 7.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ‘Ÿ ์ž…๋‹ˆ๋‹ค!

 

์˜ค๋Š˜ ์•Œ์•„๋ณผ ์ฃผ์ œ๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ฐ–์ถฐ์•ผ ํ•˜๋Š” ์ž์„ธ์ธ TDD์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ •๋ง ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ๋ฐ ์ด์ œ์„œ์•ผ ๋‹ค๋ฃจ๊ฒŒ ๋˜๋‹ค๋‹ˆ...

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”!


TDD(ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)๋ž€? ๐Ÿค”

 

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

 

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์“ฐ๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

์กฐ๊ธˆ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด ์–ด๋– ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์ ํ•ฉํ•œ ๋‹จ์œ„๋กœ ์ž๋ฅด๊ณ 

 

๊ทธ๊ฒƒ์„ ํ†ต๊ณผํ•˜๋Š” ํ…Œ์ŠคํŠธ,์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋“ฑ์„ ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ํ†ต๊ณผํ•˜๋ฉด

 

๊ทธ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


 

TDD ๊ณผ์ • ๐Ÿง

 

1. Red 

 

์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

์‹ค์ œ๋กœ ์‹คํŒจํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 

2. Green

 

์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

์‹ค์ œ๋กœ ์„ฑ๊ณตํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3. Refactor

 

์•ž์— ๋‘ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ์„ฑ๊ณตํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ๊ฒ€์ฆํ•˜์˜€๋‹ค๋ฉด 

 

์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ๊ณ ์นฉ๋‹ˆ๋‹ค.

 

4. Repeat

 

์ด ์„ธ๊ฐ€์ง€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•ฉ๋‹ˆ๋‹ค.

 


TDD๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ  ๐Ÿ˜Ž

๋ณดํ†ต์˜ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜์„œ ์ž˜๋˜๋Š”์ง€ ํ™•์ธ -> ์ž˜๋จ (ํ…Œ์ŠคํŠธ ์™„๋ฃŒ) -> ๋‹ค์‹œ ์ฝ”๋“œ ์ž‘์„ฑ 

 

์–ด์ฐŒ๋๊ฑด ์ฝ”๋“œ๊ฐ€ ์ž˜๋˜๋Š”์ง€ ํ™•์ธํ–ˆ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ƒ๊ด€ ์—†๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€? ๊ฒฐ๊ตญ์—๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ? ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค....

 

 

"๊ทธ๋Ÿผ TDD๋กœ ๊ฐœ๋ฐœ์„ ์™œ ํ•ด์•ผํ•˜๋Š”๊ฑด๋ฐ?"

 

 

 

1. ๋ช…ํ™•ํ•œ ์„ค๊ณ„

 

์ ํ•ฉํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ตœ์†Œ์˜ ๋‹จ์œ„๋กœ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์—์„œ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋Š”์ง€ ์ฒ ์ €ํžˆ ๊ตฌ์กฐํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ 

 

์ด ๊ธฐ๋Šฅ(ํ•จ์ˆ˜)๊ฐ€ ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ํ†ต๊ณผํ•˜๋Š”์ง€ ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ์‹คํŒจํ•˜๋Š”์ง€๋ฅผ ์ž‘์„ฑํ•จ์œผ๋กœ์„œ

 

๊ธฐ๋Šฅ์ด ๋จธ๋ฆฟ ์†์—์„œ ํ›จ์”ฌ ๋ช…ํ™•ํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2. ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ

 

"์•„๋‹ˆ ํ…Œ์ŠคํŠธ๋ฅผ ๋ชจ๋“  ๊ธฐ๋Šฅ ์ „์— ์ž‘์„ฑํ•œ๋‹ค๋ฉด ๋” ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“œ๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€?"

 

๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... ๋งž์Šต๋‹ˆ๋‹ค ๋งŒ์•ฝ ์˜ค๋ฅ˜๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด....

 

ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ•œ๋ฒˆ๋„ ๋งŒ๋‚˜์ง€ ์•Š๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ์š”.

 

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด๊ฒŒ ๋ฌด์—‡์ด๊ณ ,์–ด๋Š ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ, ์™œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ

 

์ฐพ๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์ด ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋Šฆ์ถ”๊ฒŒ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ์š”.

 

TDD๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ด๋ฏธ ํ…Œ์ŠคํŠธ๋ฅผ ๋งž์ถ˜ ์ƒํƒœ์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—

 

์ ์–ด๋„ ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ์ƒ๊ธธ ์ผ์€ ์—†๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

3. ์•ˆ์ „์„ฑ์„ ๋ณด์žฅ

 

๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์–ด๋– ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค๋Š”์ง€ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

 

์–ด๋–ค ๊ณ ๋ฏผ์„ ํ–ˆ๊ณ  ๋˜ ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์–ผ๋งˆ๋‚˜ ์•ˆ์ „ํ•œ๊ฐ€๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ ์ด ์•ˆ์ „์„ฑ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์ž์‹ ์—๊ฒŒ๋„

 

์•ˆ์ „์„ฑ์„ ์–ด๋Š์ •๋„ ๋ณด์žฅํ•˜๋ฉด์„œ ์ž์‹ ์˜ ์ฝ”๋“œ์™€ ๊ตฌ์กฐ ์„ค๊ณ„์— ๋”์šฑ ์ž์‹ ๊ฐ์„ ๊ฐ–๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€