πŸ§‘πŸΌβ€πŸš€ ν…ŒμŠ€νŠΈλ₯Ό μ•Œμ•„μ•Ό ν•˜λŠ” 이유

❗TDDλΌλŠ” 말을 λ“€μ–΄λ΄μ„œ μ μš©ν•΄λ³΄κ³  μ‹Άλ‹€λ©΄? β—ν΄λ¦°μ½”λ“œκ°€ 무엇인지 기쀀을 μž‘μ•„λ³΄κ³  μ‹Άλ‹€λ©΄? β—λ¦¬νŒ©ν„°λ§μ€ μ–Έμ œ, μ–΄λ–»κ²Œ ν•˜λ©΄ 쒋을지 μ•Œκ³  μ‹Άλ‹€λ©΄?

πŸ™‹πŸ»β€β™‚οΈ 이 λ¬Έμ„œλ₯Ό 보고 λ‚˜λ©΄

1. TDD(Test Driven Development)

TDDλŠ” ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³  κ·Έ ν›„ μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. TDDλŠ” μΌ„νŠΈ λ°±(Kent Beck) 이 개발 ν˜Ήμ€ 널리 μ•Œλ¦° κ°œλ…μž…λ‹ˆλ‹€. ν”νžˆλ“€ κ°œλ°œμ „μ— ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ§œλŠ”κ²Œ TDD라고만 생각할 수 μžˆλŠ”λ°, 그보닀 본질적인 μ˜λ―ΈλŠ” 문제λ₯Ό μ •μ˜ν•˜κ³ , κ·Έ 해닡을 μ°Ύμ•„κ°€λŠ” κ³Όμ •μ΄λΌλŠ”κ²Œ TDD의 κΈ°λ³Έ μ·¨μ§€μž…λ‹ˆλ‹€. 그리고 ν…ŒμŠ€νŠΈλ„κ΅¬λŠ” κ·Έ 철학을 μ΄ν–‰ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€. TDDλŠ” 주둜 개발 μ½”λ“œλ₯Ό μœ λ‹›μœΌλ‘œ κ΅¬ν˜„ν•©λ‹ˆλ‹€. μ½”λ“œμ˜ κΈ°λŠ₯을 κ²€μ¦ν•˜λŠ”κ²Œ μ€‘μš”ν•œ λͺ©ν‘œ

μž₯점

  1. ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κΈ° λ•Œλ¬Έμ— 전체 μ½”λ“œμ—μ„œ μ–Όλ§ˆλ‚˜ λ§Žμ€ μ½”λ“œκ°€ ν…ŒμŠ€νŠΈλ˜λŠ”κ°€λ₯Ό μΈ‘μ •ν•˜λŠ” ν…ŒμŠ€νŠΈ 컀버리지 λΉ„μœ¨μ΄ μžμ—°μŠ€λŸ½κ²Œ 높아진닀.
  2. ν…ŒμŠ€νŠΈ λ˜λŠ” κ²ƒλ§Œ μ½”λ“œλ‘œ μž‘μ„±ν•˜λ―€λ‘œ μ½”λ“œκ°€ λ°©λŒ€ν•΄μ§€μ§€ μ•ŠλŠ”λ‹€.
  3. λ²„κ·Έλ•Œλ¬Έμ— λ°œμƒν•˜λŠ” μ‹œκ°„ λ‚­λΉ„ 쀄여주고, μ½”λ“œκ°€ μ›ν•˜λŠ” λ°”λ₯Ό λͺ…ν™•νžˆ λ‹¬μ„±ν•˜λŠ”μ§€ μ‰½κ²Œ 확인

방법

  1. ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•œλ‹€. λ§Œμ‘±ν•˜λŠ” μ½”λ“œκ°€ μ—†λŠ” μƒνƒœμ΄λ―€λ‘œ ν…ŒμŠ€νŠΈλŠ” μ‹€νŒ¨ν•¨
  2. ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.
  3. λ¦¬νŒ©ν„°λ§: 쀑볡이 λ³΄μ΄κ±°λ‚˜ 더 κ°œμ„ ν•  방법이 μžˆλ‹€λ©΄ μ½”λ“œλ₯Ό κ°œμ„ ν•œλ‹€.

3λŒ€ 원칙 - λ‘œλ²„νŠΈ C. λ§ˆν‹΄ (λ°₯ 아저씨, 클린 코더)

  1. μ‹€νŒ¨ν•  ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜κΈ° μ „μ—λŠ” μ•„λ¬΄λŸ° ν”„λ‘œλ•μ…˜ μ½”λ“œλ„ μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.
  2. μ‹€νŒ¨ν•  ν…ŒμŠ€νŠΈ λ§κ³ λŠ” μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.
  3. ν˜„μž¬ μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈλ₯Ό λ§Œμ‘±μ‹œν‚€λŠ” μ½”λ“œ μ™Έμ—λŠ” μž‘μ„±ν•˜μ§€ μ•ŠλŠ”λ‹€.

쒋은 ν…ŒμŠ€νŠΈμ˜ 쑰건