ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์•ˆ๋…•ํ•˜์„ธ์š”?

๋„ˆ๊ตฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

 

์š”์ฆ˜ ํ…Œ์ŠคํŠธ๋ผ๋Š” ์ฃผ์ œ์— ๋น ์ ธ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํš์•ˆ์„ ๋ฐ›๊ณ  ์ฒ˜์Œ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ๋Š” ๋ชจ๋“  ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๊ณ ๋ คํ•˜๋ฉด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ํ•˜์ง€๋งŒ

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

์š”์ฆ˜ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ• ๊นŒ ๊ณ ๋ฏผํ•˜๋˜ ์ค‘ ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๊ณ  ์ถ”ํ›„ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ 

์ด๋Ÿฐ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์žก์•„๋‚ด๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๊ฒ ๋‹ค ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ๋ฐ€๋ ค๋‚˜ ์žˆ๋˜ Test Code์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์ƒ๊ฒผ๊ณ  TDD์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

 

TDD(Test - Driven Development) ๋ž€?


TDD๋ž€ Test-Driven-Development, ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค.

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

 

๊ธฐ์กด์— ๊ธฐ๋Šฅ์„ ์šฐ์„ ์œผ๋กœ ์ž‘์—…์„ ํ–ˆ์„๋•Œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์ดํด์ด ๊ตฌ์„ฑ๋œ๋‹ค.

ํ•˜์ง€๋งŒ TDD์—์„œ๋Š” ๊ธฐ๋Šฅ๊ฐœ๋ฐœ๋ณด๋‹ค Test Code๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์—…์ด ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค

TDD์—์„œ๋Š” ๊ฐœ๋ฐœ ๋ผ์ดํ”„ ์‚ฌ์ดํด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์ถœ์ฒ˜ : http://clipsoft.co.kr/wp/blog/tddtest-driven-development-%EB%B0%A9%EB%B2%95%EB%A1%A0/

1. Red: ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

2. Green: ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•œ๋‹ค.

3. Refactor: ํ…Œ์ŠคํŠธ ์„ฑ๊ณตํ•œ ํ›„ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.

4. Repeat: ์‚ฌ์ดํด ๋ฐ˜๋ณตํ•œ๋‹ค.

 

 

TDD์˜ ์žฅ๋‹จ์ ์€?


์žฅ์ !

- ์—๋Ÿฌ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

- ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋‹ค.

- ์ถ”๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์•ˆ์ •์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ์ ใ… 

- ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

F.I.R.S.T - Test Code๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์›์น™ 


 

test code๋ฅผ ์ž˜ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์น™์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

Fast - ํ…Œ์ŠคํŠธ๋Š” ๋นจ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Independent - ํ…Œ์ŠคํŠธ๋Š” ๋…๋ฆฝ์ ์ด์—ฌ์•ผ ํ•˜๋ฉฐ ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Repeatable - ํ…Œ์ŠคํŠธ๋Š” ์–ด๋А ํ™˜๊ฒฝ์—์„œ๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Self-Validating - ํ…Œ์ŠคํŠธ์‹œ ์ž์ฒด์ ์œผ๋กœ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ์ž…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Timly - ํ…Œ์ŠคํŠธ๋Š” ์‹ค์ œ ์ฝ”๋“œ ๊ฐœ๋ฐœ ์ง์ „์— ์‹ค์‹œํ•ฉ๋‹ˆ๋‹ค.

 

 

 

iOS์—์„œ Test


1. Unit Test(๋‹จ์œ„ ํ…Œ์ŠคํŠธ)

- ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ๋ณด๋‹ค ๊ฐ€์žฅ ๋จผ์ € ๊ทธ๋ฆฌ๊ณ , ๊ฐ€์žฅ ๋น ๋ฅธ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

- data base์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ http๋กœ ์š”์ฒญ๋ณด๋‚ด์ง€ ์•Š๊ณ  mock์ด๋‚˜ ์ž„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•ฉ๋‹ˆ๋‹ค

- ๋น ๋ฅด๊ณ  ์˜์กด์„ฑ ์—†๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

2. Integration Test(ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ)

- Unit Test์™€ ๋น„์Šทํ•˜์ง€๋งŒ data base์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ http๋กœ ์š”์ฒญ๋ณด๋‚ด์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

- ์ „์ฒด์ ์ธ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํ…Œ์ŠคํŠธ ํ•ฉ๋‹ˆ๋‹ค.

 

3. UI Test(UI ํ…Œ์ŠคํŠธ)

- ์•ฑ์„ ์‹คํ–‰ ํ›„ ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋Š” ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์ผ ๊ฒฝ์šฐ unit test๋ฅผ ๋จผ์ € ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

๋‹ค์Œ์€ unit test์™€ ๊ด€๋ จ๋œ ๊ฒŒ์‹œ๋ฌผ๋กœ ์ฐพ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ