Life/Book Record

[서평] 테스트 주도 개발 시작하기

샤아이인 2022. 2. 9.

저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다.

 

테스트 주도 개발 시작하기

작동하는 깔끔한 코드를 만드는 데 필요한 습관- JUNIT 5를 이용한 테스트 주도 개발 안내- 테스트 작성과 설계를 위한 대역- 테스트 가능한 설계 방법 안내- 유지보수하기 좋은 테스트 작성법

book.naver.com

 

<읽은 기간>

2022/01/05 ~ 2022/02/02

<리뷰 순서>

1) 책의 표지

2) 단원별 구성

3) 내용

4) 읽은 소감

우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다.

Q 이 책을 읽기 전에 필요한 수준/ 지식은?

=> 일단 Java 문법은 무조건 알아야 한다. Java 프로그래밍의 경험만 있다면 충분히 읽을 수 있다.

다만, 뒤에서 나오는 Mock 프레임 워크를 이용한 테스트들의 방식은 웹 개발 경험이 없다면 이해하기 어려울 수도 있다.

 

Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?

=> 나같은 경우 TDD 방식의 개발 방법론에 대하여 궁금했기 때문에 읽었다.

다 읽어본 후, TDD는 이론적으로 읽기만 해서는 불가능한, 지속적인 경험이 필요한 과정임을 알게 되었다.

의식적으로 Class 를 작은 단위로 나누어 가며 테스트를 만들어 가는 과정 자체가 처음에는 힘들다.

의식하면서 계속 노력해야 한다.

Q 이 책을 읽은후 추후 공부는?

=>  간단한 TDD 입문 책을 읽은 것이라 생각한다. 다음으로는 TDD를 직접 적용해 보면서, 켄트백의 TDD 책을 읽어봐야겠다.

또한 ATDD라는 과정 또한 공부해보고 싶다. 이는 웹 개발 공부를 좀 더 한 후 병행할 생각이다.

 

1. 책의 표지

표지는 무난한 개발 서적인 것 같다. 너무 유아틱 하지도 않고, 지저분한 디자인도 아니고, 깔끔한 편의 디자인이라 마음에 든다.

 

2. 단원별 구성

각 장에서 다루는 내용을 요약하면 다음과 같다.

 

2, 3장 - 예를 이용하여 TDD를 이용한 개발 과정을 살펴보고, 테스트 코드의 작성 순서를 설명한다.

4장 - 테스트 코드가 기능 명세와 어떤 관계가 있는지 살펴본다.

5장 - 부록 A, B Junit의 사용 방법을 소개한다.

6장 - 테스트 코드의 전형적인 구조인 상황 - 실행 - 결과 확인에 대해 설명한다.

7장 - 대역(double)의 필요성과 대역의 종류와 구현 방법을 설명한다.

8장 - 테스트가 가능하게 설계하는 방법을 소개한다.

9장 - 테스트의 범위를 살펴보고 몇 가지 통합 테스트 코드를 보여준다.

10장 - 유지보수 가능한 테스트 코드 작성 방법을 설명한다.

 

 

3. 내용

 

대부분의 내용이 오른쪽 사진과 같이 코드 + 이에 대한 설명으로 이루어져 있다.

 

또한 설명을 위해 세세한 코드 설명이 아닌, 핵심 주축 틀을 설명하는 다음과 같은 부분들도 있었다.

회색 박스 안에서 핵심이 되는 부분들만 설명하기도 했다.

 

위 2 페이지는 이 책의 핵심 내용들 중 하나였다.

TDD의 흐름이 어떠한 방식으로 이루어지는지? 또한 리펙토링을 어떻게 지속적으로 진행할지에 대하여 나와있다.

 

4. 읽은 소감

 

 장점

그냥 책이 기초 서적이라 설명을 잘해준다.

물론 마지막쯤에 Mock 프레임 워크를 사용하는 부분에서 조금 어렵다 느낄 수도 있는데, Web개발 진행 시 어떠한 방식으로 TDD를 진행하는지 또한 알아볼 수 있었던 부분이었다.

 

또 좋았던 점이, TDD 가 어떻게 진행되는 것 인지 2,3 장에서 우선 먼저 보여준다.

급한 독자들은 2,3장만 읽어도 "아! TDD는 이렇게 진행하는 것이구나!"를 느끼고, 바로 적용해 볼 수도 있다.

다만 적용을 하기까지 개인적인 많은 노력이 필요할 것 같다.

 

또한 부록 편 또한 좋았다. 나 같은 경우 JUnit으로 원래 TDD를 진행해왔데, Mockito 같은 경우 이름만 들어봤지 사용해본 적은 없었다.

입문 책이라 이런 점을 배려하여 기초적인 Mockito의 기본 사용법 또한 적혀있었다. 이런 부분에서 저자의 세심함이 느껴진다.

 

마지막으로 TDD 작성 Tip 10가지가 너무 좋았다.

TDD 작성이 어떤 식으로 더 좋은 TDD 코드들을 만들어 낼 수 있는지, 그 방법에 대한 10가지 규칙(?) 이였다.

이를 요약한 글은 다음과 같다. 책에서 일부분만 변형하면서 블로그에 정리해 두었다.

 

[TDD] 테스트 코드 작성 팁 (2/2)

해당 글은 "테스트 주도 개발 시작하기 - 최범균 저" 의 10장 내용을 공부, 기록겸 요약한 글 입니다. 지난 번 글에 이어서, 나머지 5가지 테스트 작성의 팁에 대하여 알아보자. 6. 실행 환경이 다르

blogshine.tistory.com

 

[TDD] 테스트 코드 작성 팁 (1/2)

해당 글은 "테스트 주도 개발 시작하기 - 최범균 저" 의 10장 내용을 공부, 기록겸 요약한 글 입니다. 유지보수하기 좋은 코드를 만들기 위해 필요한 좋은 패턴과 원칙이 존재하는 것처럼 좋은 테

blogshine.tistory.com

 

 단점

단점이라기 보단, 설명이 좀 구체적이지 않은 부분이 있었달까?

4장 TDD 기능 명세 설계 단원이... 뭐랄까? 약간 뜬구름 잡는 소리처럼 느껴졌다. 

상황에 대한 설명이 있기 때문에, 공부하는 학생 입장에서는 약간은 거리감 있는 내용이었다. 

 

이점 말고는 책이 전반적으로 내용을 잘 전달한다.

 

켄트백의 TDD를 읽기 전 중간 과정의 책으로 적합하다 생각한다.

댓글