ABOUT ME

-

  • TDD ๐Ÿ’Ž
    ๊ฐœ๋ฐœ 2020. 11. 2. 21:03

     

     

    ๐ŸŒธ TIL

     

     

    TDD

     

     

    ํšŒ์‚ฌ์—์„œ React Native + TypeScript ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋’ค๋Šฆ๊ฒŒ TDD๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

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

     

     

     

     

     

    ๐Ÿ”Ž  ์„  ๊ธฐ๋Šฅ๊ตฌํ˜„, ํ›„ TDD 

     

     

    ์ฒ˜์Œ์—๋Š” ๊ธฐ๋Šฅ์„ ๋จผ์ € ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜์ค‘์— TDD๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ์‹์„ ์ ์šฉํ–ˆ์—ˆ๋‹ค.

    TDD์˜ ์˜๋ฏธ๋Š” "ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ" ์ธ๋ฐ ์„  ๊ธฐ๋Šฅ๊ตฌํ˜„ ํ›„ TDD๋ฅผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ TDD์˜ ์กด์žฌ์˜๋ฏธ๋ฅผ ์žƒ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๊ณ  ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์—†๋‹ค. 

     

    ๊ธฐ๋Šฅ์„ ๋‹ค ๊ตฌํ˜„ํ•œ ํ›„ ๋ชฐ์•„์„œ ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋‹น์—ฐํžˆ 100% ์„ฑ๊ณตํ•˜๋Š” ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ๋ฐ–์— ์—†์„ ๋ฟ๋”๋Ÿฌ ์ด ์ฝ”๋“œ๋ฅผ ์™œ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ์˜๋ฏธ์กฐ์ฐจ ๋ช…ํ™•ํ•ด์งˆ ์ˆ˜ ์—†๋‹ค.

     

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

     

     

     

     

    ๐Ÿ”Ž  ์„  TDD, ํ›„ ๊ธฐ๋Šฅ๊ตฌํ˜„

     

     

    TDD๋ฅผ ๋„์ž…ํ•จ์œผ๋กœ์จ ์„ค๊ณ„ ๊ด€์ ์—์„œ ์—ฌ๋Ÿฌ ์ƒํ™ฉ๋“ค์„ ์—ด์–ด๋‘๊ณ  ๋ณด๊ฒŒ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์—ด๋ฆฐ ์„ค๊ณ„ ๋ฐฉ์‹์ด ์•ˆ์ •์„ฑ ๋†’๊ณ  ํ™•์žฅ์„ฑ ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ๋„์›€์„ ์ฃผ์—ˆ๊ณ  ์‹ค์ œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ๊ณผ๋„ํ•œ ์„ค๊ณ„๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

     

    ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜๊ณ  ์ด ์ฝ”๋“œ๋ฅผ ์™œ ์ž‘์„ฑํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ์˜๋„๊ฐ€ ์ข€ ๋” ๋ช…ํ™•ํ•ด์ง€๋Š” ์žฅ์ ๊ณผ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๋ฏธ๋ฆฌ ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ์•„์›ƒ๋ผ์ธ์ด ๊ทธ๋ ค์ง„๋‹ค๋Š” ์žฅ์ ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

     

    ๋ฌผ๋ก  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•จ์œผ๋กœ์จ ์ดˆ๋ฐ˜์— ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ฒŒ ๋˜๊ธด ํ•˜์ง€๋งŒ TDD๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์„ค๊ณ„์ธก๋ฉด์—์„œ๋„ ์ข‹์€ ์„ค๊ณ„๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๊ณ  ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ๋˜ํ•œ ํ–ฅ์ƒ์‹œ์ผœ์ค„ ๊ฒƒ์ด๋‹ค.

     

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

     

    ์•„์ง๊นŒ์ง€๋Š” ์„  TDD์ž‘์„ฑ ํ›„ ๊ธฐ๋Šฅ๊ตฌํ˜„์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๋‚ด๊ฐ€ TDD๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋˜์ง€๋งŒ ๊พธ์ค€ํžˆ ์Šต๊ด€ํ™” ํ•œ๋‹ค๋ฉด ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์ธ ์ง€๊ธˆ์ด TDD๋ฅผ ์Šต๊ด€ํ™” ํ•˜๊ธฐ์— ๋”ฑ ์ข‹์€ ์‹œ๊ธฐ์ผ ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๋Š”๋‹ค.

     

     

     

     


     

    ๋งˆ์น˜๋ฉฐ ๐ŸŒธ

     

    TDD์˜ ์˜๋ฏธ๋Š” "ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ" ์ด๋ผ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง๊ณ  ๊ธฐ๋Šฅ๊ตฌํ˜„ํ•˜๊ธฐ ๊ธ‰๊ธ‰ํ•˜์—ฌ ๋ฌด์ž‘์ • ์ฝ”๋“œ์ž‘์„ฑ์œผ๋กœ ๋‹ฌ๋ ค๋“ค์ง€ ๋ง๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ TDD๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐœ๋ฐœ์„ ์ด๋Œ์–ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.

     

    ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ž˜๋ชป ์งœ์—ฌ์ง€๋ฉด ์กด์žฌ์˜ ์˜๋ฏธ๋ฅผ ์žƒ๊ฒŒ ๋˜์–ด์„œ ์ƒ๊ฐ์ด ๋งŽ์ด ํ•„์š”ํ•˜๋‹ค.

    ํ•˜์ง€๋งŒ " ์ž˜ ์งœ์—ฌ์ง„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ข‹์€ ์„ค๊ณ„ " ๋กœ ๋ถ€ํ„ฐ ์˜ค๋Š” ๊ธฐ์จ์„ ๋Š๊ปด๋ณธ๋‹ค๋ฉด TDD๋ฅผ ๋„์ž…ํ•˜์ง€ ์•Š์„ ์ด์œ ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

     

     

     

     

     

    ( ์ด๋ ‡๊ฒŒ TDD๊ฐ€ ์ข‹๋‹ค์ข‹๋‹ค ํ•ด๋†“๊ณ  ๋‚ด์ผ ์ถœ๊ทผํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‚œ ๋˜ TDD ์ž‘์„ฑ์„ ๊นœ๋นกํ•˜๊ฒ ์ง€.............?....... ์–ผ๋ฅธ ์Šต๊ด€ํ™”ํ•ด์•ผ๊ฒ ๋‹ค..........^^................๐Ÿ˜‚ )

     

     

     

Designed by Tistory.