개발

TDD πŸ’Ž

Lee_hyojin 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 μž‘μ„±μ„ κΉœλΉ‘ν•˜κ² μ§€.............?....... μ–Όλ₯Έ μŠ΅κ΄€ν™”ν•΄μ•Όκ² λ‹€..........^^................πŸ˜‚ )