less than 1 minute read

TDD (테스트 주도 개발)

테스트를 먼저 만들고 테스트를 통과하기 위한 것을 짜는 것
  • 핵심 개념

    결정(어떤 솔루션으로 할 지) 과 피드백(성공/실패(에러)에 대한 결과) 사이의 갭에 대한 인식과 갭을 조절하기 위한 테크닉

    갭을 모르는 것은 문제이지만 갭을 모르는 것이 가장 큰 문제

  • 어떤 상황에서 써야할 까

    불확실성이 높을 때

  • 효과

    • 피드백

      테스트를 통과하는 것으로 성공/실패를 자주 확인할 수 있음

    • 협력

      공유, 기록하기 쉬워져서 다른 사람과 협업에 좋은 영향을 줌

  • 장단점

    • 장점

      1. 결함이 줄어듦

        벼그가 줄어들기 때문에 10~50% 까지 줄어듦

      2. 코드 복잡도가 떨어짐

        엔트로피가 낮아지므로 깨끗한 코드가 나오고 유지보수 비용이 낮아짐

    • 단점

      1. 개발 시간이 늘어남

        테스트 코드, 원래 코드 2개를 짜야 하지만 개발 시간이 TDD 를 하지 않을 때에 비해 10~30% 늘어나므로 단점이라 보기 힘들 수도 있음

  • 어려운 이유와 잘 하는 방법

    • 어려운 이유

      1. 개발 시간이 증가함

        단기적인 성과에 집중하기 때문에 전체 개발 시간을 줄이기 보다 오늘 일을 끝내는 것을 강조함

      2. 어려움

        자신이 개발하던 방식을 많이 바꿔야 하기 때문에

      3. 어떻게 해야 한다는 이미지/틀이 있음

        반드시 툴을 써서 이렇게 해야된다 라는 생각이 있음

    • 잘 하는 방법

      적응적, 진화적으로 접근해야 함

      피드백과 협력에 대한 고민으로 일하는 방향을 업그레이드 해야 함

Categories:

Updated: