더북(TheBook)

2.1.4 안전한 유지 보수와 리팩토링

TDD를 실천하면 프로젝트 제품 코드를 대상으로 확실한 단위 테스트 꾸러미를 구축할 수 있다. 예전에 잘 돌아가던 코드가 지금은 제대로 작동하지 않는 회귀 결함(regression defect)은 코드 품질과 믿음성을 떨어뜨리는 요인이다.

여타 보험 정책이 그렇듯, 혜택은 없고 짐만 되는 재발 비용(recurring cost)이 발생한다. 단위 테스트의 경우 테스트 꾸러미를 개발/보수하느라 재발 비용이 들어가는데, 보험과 마찬가지로 이 재발 비용을 지불하는 부담에서 벗어나는 시점이 온다. 가령, 단독 주택을 소유한 사람이 어느 날 폭우로 정원 나무가 무너지면서 집을 덮쳐 엄청난 손해가 발생하는 경우가 그렇다(실제로 우리 중 한 사람도 그런 일을 겪은 바 있다).

종합적인 단위 테스트 꾸러미가 마련된 제품 코드를 확장 또는 보수할 때도 비슷한 안도감을 느낄 수 있다. 실수로 다른 코드를 건드리지 않았다는 확신을 하고 코드 일부를 (물론 TDD 방식에 따라) 변경할 수 있기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.