Unit Testing

๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ์‹œ๊ฐ„์„ ํˆฌ์žํ• ๋•Œ๋Š” ํ•ญ์ƒ ์ตœ๋Œ€ํ•œ ์ด๋“์„ ์–ป๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ์— ๋“œ๋Š” ๋…ธ๋ ฅ์„ ๊ฐ€๋Šฅํ•œ ์ค„์ด๊ณ , ๊ทธ์— ๋”ฐ๋ฅด๋Š” ์ด๋“์„ ์ตœ๋Œ€ํ™”ํ•ด์•ผ ํ•œ๋‹ค.

๋‹จ์œ„ ํ…Œ์ŠคํŠธ์˜ ๋ชฉํ‘œ

ํ•ต์‹ฌ์€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ง€์† ๊ฐ€๋Šฅํ•œ ์„ฑ์žฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋ถ€์žฌํ•œ ํ”„๋กœ์ ํŠธ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํ˜„์ €ํžˆ ๋‚ฎ์•„์ง„๋‹ค.

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

์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ๊ณ„์† ์Œ“์ด๋‹ค ๋ณด๋ฉด ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” ์ฉ์–ด๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด ๊ฐœ๋ฐœ์†๋„๊ฐ€ ํ˜„์ €ํžˆ ๋‚ฎ์•„์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ์†Œํ”„ํŠธ์›จ์–ด ์—”ํŠธ๋กœํ”ผ๋ผ๊ณ ๋„ ํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ์ด๋Ÿฐ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „๋ง ์—ญํ• ์„ ํ•œ๋‹ค.

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

๋‹จ์œ„ ํ…Œ์ŠคํŠธ์™€ ์ฝ”๋“œ์„ค๊ณ„

์ข‹์€ ๋ถ€์ • ์ง€ํ‘œ, ์ข‹์ง€ ์•Š์€ ๊ธ์ • ์ง€ํ‘œ

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ์ €ํ’ˆ์งˆ ์ฝ”๋“œ๋ฅผ ๊ฐ€๋ ค๋‚ด๊ธฐ ์œ„ํ•œ ์ข‹์€ ๋ถ€์ • ์ง€ํ‘œ์ด์ง€๋งŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐ˜๋“œ์‹œ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•˜์ง„ ์•Š๋Š”๋‹ค.

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

  • ์ฝ”๋“œ ๊ฐ„ ๊ฒฐํ•ฉ๋„ ๋ฐ ์˜์กด์„ฑ์ด ๋†’๋‹ค.

  • SRP(๋‹จ์ผ์ฑ…์ž„์›์น™) ์„ ์ง€ํ‚ค์ง€ ์•Š์•„ ํ•˜๋‚˜์˜ ์ฝ”๋“œ์— ์—ฌ๋Ÿฌ ์—ญํ• ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค

์‰ฌ์šด ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” ์ตœ์†Œํ•œ ์ €ํ’ˆ์งˆ ์ฝ”๋“œ์—์„œ ๋ฒ—์–ด๋‚˜ ๋” ๋‚˜์€ ์„ค๊ณ„๋กœ ์ด์–ด ์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ข‹์€ ํ…Œ์ŠคํŠธ, ๋‚˜์œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌ๋ณ„ํ•˜์ž.

ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ๋Šฅ์‚ฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‚˜์œ ํ…Œ์ŠคํŠธ๋Š” ์—ฌ์ „ํžˆ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ๋Š”๋‹ค.

๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธ ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์—๋งŒ ๋งค๋ชฐ๋˜์–ด ์˜์–‘๊ฐ€ ์—†๋Š” ํ…Œ์ŠคํŠธ์— ์‹œ๊ฐ„์„ ๋ฒ„๋ฆฌ๊ฒŒ ๋˜๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ์˜ ๋„์›€์ด ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์ง€์† ๊ฐ€๋Šฅํ•œ ํ”„๋กœ์ ํŠธ ์„ฑ์žฅ์„ ์œ„ํ•ด์„œ๋Š” ๊ณ ํ’ˆ์งˆ์˜ ํ…Œ์ŠคํŠธ์—๋งŒ ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ํ’ˆ์งˆ ์ธก์ •์„ ์œ„ํ•œ ์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ‘œ

์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ‘œ๋Š” ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์–ผ๋งˆ๋‚˜ ์‹คํ–‰ํ•˜๋Š”์ง€ ๋ฐฑ๋ถ„์œจ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ‘œ๋Š” ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€, ๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ‘œ๋Š” ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ์˜ ํ’ˆ์งˆ์„ ํ‰๊ฐ€ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋†’์„ ์ˆ˜๋ก ๋” ์ข‹์ง€๋งŒ ๋†’๋‹ค๊ณ  ์ข‹์€ ํ…Œ์ŠคํŠธ๋ผ๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•œ๋‹ค.

์ข‹์€ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ์˜ ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•˜๊ธฐ์— ์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ‘œ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค.

๋†’์€ ์ปค๋ฒ„๋ฆฌ์ง€ ์ˆซ์ž๋ฅผ ๋ชฉํ‘œ๋กœ ๋‘์ง€ ๋ง๊ณ  ์ข‹์€ ๋ถ€์ • ์ง€ํ‘œ๋กœ์„œ ์‚ฌ์šฉํ•˜์ž.

์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€์˜ ํ—ˆ์ 

์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ = ์ œํ’ˆ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜ / ์ „์ฒด ๋ผ์ธ ์ˆ˜

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ๋‹จ์ˆœํžˆ ๋ผ์ธ์ˆ˜์˜ ๋ฐฑ๋ถ„์œจ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ์— ๋‚ฎ์œผ๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ์ข‹์€ ์ฆ๊ฑฐ์ด์ง€๋งŒ ๋†’๋‹ค๊ณ  ํ•ด์„œ ์–‘์งˆ์˜ ํ…Œ์ŠคํŠธ๋ผ๊ณ  ๋ณด์ง€ ๋ชปํ•œ๋‹ค.

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

๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€์˜ ํ—ˆ์ 

๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€ = ํ†ต๊ณผ ๋ถ„๊ธฐ / ์ „์ฒด ๋ถ„๊ธฐ ์ˆ˜

๋ถ„๊ธฐ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๋‹ค ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๋ถ„๊ธฐํ•˜๋Š” ๋ชจ๋“  ๊ตฌ๋ฌธ์„ ํ•ฉ์‚ฐํ•˜๊ณ  ๊ทธ ์ค‘ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๋ถ„๊ธฐ๊ฐ€ ์–ผ๋งŒ์ง€ ์ธก์ •ํ•˜๋Š” ๊ฒƒ

๋‹จ์ˆœํžˆ ๋ถ„๊ธฐ ๊ฐœ์ˆ˜๋งŒ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค๊ณ  ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.

์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ ค๋ฉด ๋ชจ๋“  ์ธก์ • ์ง€ํ‘œ๋ฅผ ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์„ฑ๊ณต์ ์ธ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•˜๋Š”๊ฐ€?

์„ฑ๊ณต์ ์ธ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ์˜ ํŠน์„ฑ

  • ๊ฐœ๋ฐœ ์ฃผ๊ธฐ์— ํ†ตํ•ฉ๋จ

  • ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ๋Œ€์ƒ์œผ๋กœ ํ•จ

  • ์ตœ์†Œํ•œ์˜ ์œ ์ง€๋น„๋กœ ์ตœ๋Œ€์˜ ๊ฐ€์น˜๋ฅผ ๋Œ์–ด๋ƒ„

๊ฐœ๋ฐœ ์ฃผ๊ธฐ์— ํ†ตํ•ฉ

์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋Š์ž„์—†์ด ํ•˜๋Š” ๊ฒƒ ๋ฟ

์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์ตœ์†Œํ•œ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์ „,, main ๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•˜๊ธฐ ์ „, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌ๋˜๊ธฐ ์ „์—๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํฌํ•จ์‹œํ‚ค์ž.

์ฝ”๋“œ๋ฒ ์ด์Šค ๋‚ด์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ๋Œ€์ƒ์œผ๋กœ

์‹œ์Šคํ…œ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋ชฐ๋‘ํ•˜๊ณ , ๊ทธ ์™ธ๋Š” ๊ฐผ๋žตํžˆ ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ๋งŒ ๊ฒ€์ฆํ•˜์ž.

ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ ํ•˜๋ฉด ๋น„์ฆˆ๋‹ˆ์Šค(๋„๋ฉ”์ธ) ๋กœ์ง์ด๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ๊ฐ„ ํˆฌ์ž ๋Œ€๋น„ ์ตœ๊ณ ์˜ ํšจ์œจ์„ ๋‚ธ๋‹ค.

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋„๋ฉ”์ธ ๋ชจ๋ธ์—๋งŒ ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์ฝ”๋“œ ๋ฒ ์ด์Šค ์ค‘ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„๊ณผ ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

์ตœ์†Œ ์œ ์ง€๋น„๋กœ ์ตœ๋Œ€ ๊ฐ€์น˜๋ฅผ

๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ด์ง€๋งŒ ๊ฐ€์žฅ ์–ด๋ ต๋‹ค.

๊ฐ€์น˜๊ฐ€ ์œ ์ง€๋น„๋ฅผ ์ƒํšŒํ•˜๋Š” ํ…Œ์ŠคํŠธ๋งŒ ์Šค์œ„ํŠธ์— ๋‚จ๊ธฐ๋Š”๊ฒŒ ์ข‹๋‹ค.

๊ฐ€์น˜๊ฐ€ ๋†’์€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์ค€ ํ‹€์ด ํ•„์š”ํ•˜๋ฉฐ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

๊ฐ€์น˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋ฅผ ์ž˜ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.

์ฆ‰, ๊ธฐ๋ฐ˜ ์ฝ”๋“œ์— ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ์•ผ ๊ฐ€์น˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Last updated