TDD에 관하여!

posted on 18 Jul 2017 under category SW개발론

한눈에 보는 TDD

대체텍스트
대체텍스트

TDD 의 필요성

실제로 일을 하는데 기획을 거쳐 설계와 디자인이 완료된 후 개발을 시작하는데 기획이 바뀌지 않는 경우는 거의 드물다.
개발 초기에는 괜찮지만 개발이 어느정도 진행된 후에는 많은 리소스가 투입된다.
그렇다고 기획이 잘못된것은 아니다. 우리는 미래를 보지 못하기 때문에 결과물을 예상할 뿐이기 때문이다.
그렇기때문에 개발 도중에 바뀌는 기획은 당연하다고 생각한다.

하지만 TDD기법을 사용하면 위에서의 문제점을 해결할 수 있다.

TDD 란?

TDD 란 Test Driven Development 로 테스트 주도 개발이다.
위의 그림을 보면 알수 있듯이 본 개발을 들어가기 전에 테스트개발을 통해 결과물을 본 후 본개발에 들어가는 것이다.
하지만 테스트개발을 마구잡이로 한다면 리소스가 더 많이 들 수 있는데, 그렇기 때문에 정확한 프로그래밍의 목적을 디자인 단계에서 정확하게 미리 정의하고 무엇을 테스트 할것인지 정확히 정의해야 한다
또한 테스트의 자동화 는 필수조건이다

TDD 장점

  1. 버그가 줄어든다.
    • 처음부터 TDD로 개발하였다면 모든 코드가 테스트되기 때문에 버그가 줄어든다.
  2. 재설계 시간이 줄어든다
    • 개발이 완료된 후에 변경되는 경우가 드물기 때문에 재설계의 시간이 줄어든다.
  3. 객체지향적인 코드
    • 테스트코드들은 각각의 기능을 느슨하게 개발하여 본코드에 붙이기 때문에, 테스트코드는 재사용성을 보장하고, 느슨하게 결합하게끔 만들어 모듈화 한다.

TDD 단점

  1. 코드생산성이 떨어진다.
    • 애자일과 같은 (짧은 개발 주기)의 기법과 사용하면 시너지가 있는데, 빠른시간내에 개발해야 하므로 코드의 퀄리티가 떨어질수있다.
  2. 진입장벽
    • 객체지향 프로그래밍을 잘 이해하고 있어야하므로 주니어개발자에게는 힘들 수도있다.
Written by Brody Byun
Please Do not steal content from our website.
Please let me know if you want to take the post.(email or reply)