read
테스트 주도 개발 - 8점
켄트 벡 지음, 김창준 외 옮김/인사이트

 

프로그래밍을 우물에서 한 두레박의 물을 길어 올리기 위해 크랭크를 돌리는 것으로 상상해보라. 작은 두레박일 때에는 자유롭게 돌아가는 크랭크로도 괜찮다. 큰 두레박에 물이 가득 담겨 있을 때에는 두레박이 다 올라오기도 전에 지쳐버릴 것이다. 몇 차례 크랭크를 돌리고 나면 쉴 수 있게 해주는 어떤 톱니바퀴 매커니즘이 필요하다. 두레박이 크면 클수록 톱니바퀴의 이빨이 더 촘촘해야 한다.
테스트 주도 개발의 테스트가 그 톱니바퀴의 이빨과 같다.

 

책 내용의 대부분은 Money 라는 클래스를 TDD 로 만들어 보는 데 할애하고 있다. 백 번 듣는 것 보다 한 번 보는 게 낫다는 이야기다. TDD 의 핵심은 간단하다.

 

빨강 – 초록 – 리팩토링

 

실패하는 테스트를 작성하고, 테스트가 통과하도록 만들고, 리팩토링한다. 하지만 역시 이걸 ‘잘’ 하는 건 쉽지 않다. 태권도의 움직임을 배우는 건 쉽지만 발차기를 잘 하려면 많은 노력이 드는 것과 같은 이치다.

 

어려운 일을 힘든 일로 만든다” 라는 관점에서 봤을 때, 코딩을 어떻게 시작해야 할 지 넋 놓고 있을 개발자에게 명확한 가이드라인을 제시한다. 일단 테스트 코드를 만든 다음 수단과 방법을 가리지 말고 테스트가 성공하도록 한다. 그 다음은 Refactoring 이다. 이 과정 속에서 설계는 점점 나아질 것이고, 기능들은 자동화된 테스트들에 의해 보장받게 된다.

Blog Logo

Ki Sung Bae


Published

Image

Gsong's Blog

Developer + Entrepreneur = Entreveloper

Back to Overview