개발 속도!
TDD를 격렬하게 사랑하는 편은 아니지만, 테스트 코드를 은근히 작성한다.
테스트 코드를 작성하는 이유는 여러 가지가 있지만, 가장 큰 이유는 개발 속도 때문이다. 난 요구사항을 충족하는 결과물을 빨리 만들어 제때 퇴근하고 싶은 월급쟁이 직장인이다. 장인 정신 이런 거 별로 없다. 이런 나에게 도움을 주는 것이 바로 테스트 코드이다. 정확하게 측정한 적이 없어 객관적인 근거는 없지만, 경험에 비추어 보면 테스트 코드를 작성하는 것이 다음 면에서 유리했다.
1. 수동으로 테스트하는 노동 시간을 줄여준다.
2. 버그와 같은 문제를 더 빨리 찾을 수 있다.
3. 코드를 변경할 때 영향을 받는 부분을 더 빨리 찾을 수 있다.
테스트 코드를 작성하면서 얻게 되는 덤은 변화에 유연하게 대응할 수 있는 가능성이 높아진다는 점이다. 테스트 코드를 작성하려고 시도하다 보면, 자연스럽게 테스트 가능한 구조가 되도록 코드를 분리하게 된다. 이런 과정에서 일부 메서드는 별도 클래스로 분리되기도 하고, 어떤 클래스를 인터페이스로 추상화하기도 한다. 이런 과정이 반복되면 조금씩 변화에 유연하게 대응할 수 있는 구조가 만들어지곤 한다. 변화에 유연하게 대응할 수 있는 가능성이 높아지면 향후 새로운 요구사항을 위한 개발 시간도 줄어들 가능성이 높아진다는 것을 의미한다. 이는 개발 속도를 빠르게 해 준다.
결과적으로 내가 테스트 코드를 작성하는 이유는 오직 하나 개발 속도 때문이다. 같은 기능을 조금이라도 빨리 구현하는데 테스트 코드는 큰 도움을 준다.
시간이 없어서 테스트 코드를 작성하지 못한다는 소리를 하는 개발자는 그 없는 시간을 만들어내기 위해 테스트 코드를 작성해야 한다. 지금 5분간 작성하는 테스트 코드가 향후 30분을 아껴줄 것이기 때문이다. 테스트 코드를 만들 실력이 부족해서 만들지 않았다면, 실력 좋은 개발자한테 가서 두고두고 복사/붙여 넣기 할 수 있는 테스트 코드 몇 개 얻어와라. 그리고 거기서부터 시작하자. 새로운 세계가 열릴 것이다.