1 분 소요

Test Driven Development: By Example

Introduction

1년 가까이 TDD를 연습하면서 이제서야 이 책을 읽어보았다. 사실 이 책을 읽은지는 한달정도 되었는데 리뷰를 적을지 말지 고민을 많이 하였다. 왜냐하면 내가 이책을 잘 읽었다고 생각이 들지 않았고 내용을 잘 이해하지 못했다고 생각이 들어서 이다. 아무래도 한번더 읽어봐야할 것 같다.

이 책은 책의 제목에서 볼 수 있듯이 대부분의 내용은 에제를 통해서 TDD에 대한 내용을 설명하는 방식으로 진행된다. 1부에서는 자바로 다중 화페 코드를 작성하면서 TDD를 어떻게 진행해 가는 지에 대해서 설명을 하고 2부에서는 파이썬으로 단위 테스팅 프레임워크를 만들어가면서 TDD에 대한 설명을 이어간다. 3부에서는 테스트 주도 개발에서 자주 등장하는 패턴들을 정리하고 마지막 부록에서는 실전에서 TDD를 어떻게 활용하면 좋은지에 대한 설명으로 책의 내용을 마무리한다.

읽는 방법

이 책을 읽을 때에는 코드를 함께 작성해가면서 책에서 설명해주는 내용을 곱씹어 보아야 한다고 생각한다. 내가 이 책을 다시 읽어 봐야겠다고 생각한 이유중에 하나가 이 책을 코드를 함께 작성하면서 읽은 것이 아니라 단순히 읽기만 하였기 때문이다.

다중 화폐 예제

다중 화폐 예제로 TDD를 하는 예제를 보면 TDD를 배우고 있는 내가 보더라도 새롭다고 느껴지거나 이렇게까지? 라는 부분을 많이 볼 수 있었다. 내가 지금 하고 있는 TDD가 잘못되지 않았나 라는 생각을 하게 되었고 테스트코드를 작성하는 방식부터 다시 연습해 봐야 겠다고 생각했다.

단위 테스팅 프레임워크 작성 예제

테스팅을 위한 자동 테스팅 프레임워크도 테스트로 작성해 나가는 경험은 신선했다. 우리가 작성하는 모든 코드는 테스트 코드로 작성할 수 있으며 꼭 Junit과 같이 자동화된 테스트 프레임워크가 있어야지만 테스트를 할 수 있을 것이라는 내 생각이 잘못된 것이라는 것을 알 수 있는 내용 이었다.

디자인 패턴

이 책에서 다루는 디자인 패턴은 다른 디자인 패턴과는 다르게 TDD관점에서의 디자인 패턴을 말한다. 흥미로운 얘기는 디자인 패턴과 관련된 책들이 디자인에 대한 패턴을 억압한다는 것과 리펙토링은 설계의 일종이 아니다라고 말하는 것이다. 솔직히 아직 디자인 패턴과 관련한 이해도가 높지 않아서 내용을 이해하면서 읽었다기 보다는 각 디자인 패턴에 대해서 어떻게 설명하는지 살펴보는 느낌으로 읽었다.

Wrap up

내 기준으로 봤을 때 이 책은 적어도 2번 이상은 읽어봐야 저자가 무엇을 말하는지 어렴풋이 이해해 나갈 수 있을 것 같다. 예시 코드도 함께 작업해보고 디자인 패턴에 대한 내용도 함께 고민해보면서 책에서 말하고자 하는 내용이 무엇인지 파악하기 위해서 많은 노력을 기울여야 하는 것 같다. 이 책에 대한 리뷰는 한번 더 읽어보고 추가적으로 또 작성해 보아야 할 것 같다.