[독서록] 테스트 주도 개발

테스트 주도 개발은 테스트 방법에 대한 것이 아니다. 개발을 주도하는 방법론이다.

  1. 실패하는 작은 테스트를 만든다.
  2. 테스트가 일단 통과하게 대충 코드를 짠다.
  3. 대충 짠 코드를 중복을 제거하며 리팩토링한다.

이 3가지 원칙만으로도 어플리케이션은 견고해지고, 가독성이 향상되고, 장애율은 낮고 유지보수가 용이한 어플리케이션이 탄생한다. 현실세계에서 TDD로 작업할 수도 있겠으나, 나는 ‘테스트의 중요성을 인지하고 다각도로 테스트 코드를 충분히 작성해야 한다' 정도로 받아들이려 한다. 혹은 너무 복잡해서 설계에 애를 먹는 컴포넌트의 경우 제한적으로 TDD로 접근해볼 수도 있을 것 같다.