담백하게 TDD에 입문하기 좋은 책!!
추천도 : 6/7. [ 실습 진행하는데 어려움이 없고, 이해하는데도 큰 어려움이 없었다! ] 입문으로 추천!
★★★★★★☆
읽은 기간 📅 : 2021년 4월 28일 ~ 6월 23일
이 책을 추천하는 이들 👨👧
- TDD에 관심이 있는 사람들
- 리팩터링에 관심이 있는 사람들
- JUnit5부터 배우고자 하는 사람들
난이도 🦈
중. ( 기본적인 자바 실력이 필요하고, 라이브러리 추가하는데 문제가 없어야 한다. + 객체지향적인 코딩 실력이 어느정도 필요..)
관련된 책들 📚
- 켄트백의 TDD
- 리팩터링 책 (자바로 배우는 리팩토링 입문)
- 자바와 JUnit을 활용한 실용주의 단위 테스트
한 줄 평 ✍️
TDD는 습관으로 만들어 놓는게 답이다.
건강한 개발자가 되기 위해서 가져야할 습관.
"성공한 사람들의 7가지 습관"이라는 책이 있다.
읽지는 않았지만 대략적으로 어떤 습관들을 소유했을지가 눈에 훤하다.
성공한 개발자들의 습관도 마찬가지다.
어떻게 해야 성공할지는 눈에 훤한다. 너무도 당연한 습관들을 소유했을 가능성이 매우매우 높다.
성실한 것은 기본이며, 협력도 기본이고, 꾸준한 학습도 기본이고...등등
TDD도 기본일 것이다.
우리는 성공한 개발자가 되기 위해서 꾸준하게 나아가야 한다.
내가 생각하기에 성공한 개발자가 되기 위한 강력한 습관 중 하나는 TDD이고,
시간이 난다면 꼭 학습해서 습관화 해야 하는 기술적인 역량일 것이다.
이 책은 건강한 개발자를 위한 TDD 학습에 있어서 좋은 입문서가 되어준다고 생각한다.
최범균 저자님의 책은 늘 그렇듯 이 책도 담백하다.
딱 필요한 내용 그대로,
과하거나 너무 어렵게 설명하는 부분없이 정석적인 느낌
스프링5 프로그래밍 입문도 그렇고, DDD Start도 그렇고....
방대한 양의 저서를 제작해주는 모습이 존경스러울 따름이다.
이 시간에도 어딘가에서 저자분이 정리한 책으로 한단계 성숙해지는 개발자들이 있을 것이다.
좋은 책을 만들어줘서 감사를 표하고 싶다.
TDD : Test Driven Development.
소프트웨어 개발은 실패가 늘상 있는 일이다.
예외가 늘상 있다. 네트워크든, 하드웨어든, 설정이든, 개발자의 생각이던...
다른 비즈니스 분야와 다르게 시제품으로 나오기 전까지는 소프트웨어의 개발에서 실패 비용은 0에 가깝다.
그 이유는 소프트웨어 개발 비용에 있어서
환경(네트워크, PC, 장소)만 제공되면 비용없이 무한정 테스트하면서 제작할 수 있기 때문이다.
그 어느 비즈니스에서도 없는 환경이다. (다양한 비즈니스 환경에서의 테스트는 모두 비용이다. (특히 차량))
그래서 우리는 시제품이 아닌 경우의 프로그램을 짤 때 섣부르게 코드를 짜는 경향이 있다.
우선 기능부터 구현하고 보는 것. 실패와 예외는 나중에 문제가 되었을 때 쳐다보는 것.
사실은 내 얘기다. TDD를 모를 때는 저렇게 살아왔다.
문제가 발생하면 라인 곳곳에 출력문을 넣어서 과정을 살펴봤다.
가끔은 break를 설정한 후 단계별로 진행되는 과정을 살펴보기도 했다.
(break걸고 단계별로 확인하는 것은 답답해서 그냥 출력으로 처리하는 편..)
그런데 이제는 그렇게 하는 것에 회의감이 든다.
DRY법칙. 반복되는 상황이라면 더 효율적인 무언가를 추구할 게으름을 꺼내야 한다.
테스트 코드가 바로 그것이다.
테스트 코드 자체가 일거리로 느껴질지는 모르겠으나, 미래를 대비한다면 절대 일거리가 아니다.
이것은 귀찮은 일을 반복적으로 해결해줄 수 있는 무기같은 것이다.
소프트웨어의 테스트는 지극히 쉽고, 저렴한 편이다.
다른 분야(건축, 자동차, 의료... 나아가 인간만의 서비스들(음악, 춤, 뮤지컬 등등))에서 보이지 않는 테스트를 구경한 적이 있다.
그 중 하나를 뽑아보자면 무대를 준비하는 사람들의 테스트였다.
실제 관중이 없는 상황에서 실제 뮤지컬 현장과 같은 대사와 배경을 진행하며 무대의 장치가 이상이 없는지
배우들이 호흡이 잘 맞는지
조명과 음악에는 문제가 없는지
시간은 문제가 없는지
수십번의 테스트를 거치고 관중들의 앞에 나서서 완벽한 모습을 보여주고자 노력한다.
프로그래머도 이런 정신을 보고 배울 필요가 있다고 생각한다.
우리의 제품을 사용할 누군가를 위해서 안전한 장치들을 마련해야 하는 것이다.
나도 안전하고, 나도 만족하고, 사용자도 만족하는 윈윈의 장치
그것이 바로 현실의 보험책을 두는 테스트이다.
그러니 테스트 코드를 너무 싫게만 바라보지는 말자.
다른 비즈니스 영역에 비해서 소프트웨어의 테스트 환경은 비용 0에 가까우니 말이다.
해당 책은 Junit5부터 테스트 주도 개발을 실천하는 분들에게 좋은 입문책이라고 생각한다.
다만 아쉬운 점은 Mocking과 관련된 좀 더 깊은 예제가 없어서 아쉬웠다. (실무적으로는 Mockito 사용이 더 중요할 듯 싶으니...)
이 책 이후로는 길벗 출판사의 "자바와 JUnit을 활용한 실용주의 단위테스트"를 읽어볼까 한다.
해당 책은 Junit4를 기준으로 만들어진 것 같은데... 큰 문제없이 진행할 수 있지 않을까 한다.
'소프트웨어,IT,컴퓨터공학 도서리뷰 > 개념 서적: (Conceptual Books): TDD, OOP, DDD' 카테고리의 다른 글
함수형 사고(O'REILLY) - 객체지향 개발자에서 함수형 개발자로 거듭나기 - [ 6~7/7] [명저다] [난이도최상] (0) | 2021.07.07 |
---|---|
JAVA EE 디자인 패턴 책 후기 -무라트 예네르 지음 이일웅 올김- [길벗출판사] [디자인패턴] [2021] [4or6/7] (0) | 2021.06.29 |
클린코드(Clean Code) - 로버트 C 마틴 [ 4~5/7] [전세계 개발자들에게 좋은 습관을 제시해준 책] [엉클밥] (0) | 2021.06.04 |
Professional 소프트웨어 개발 -스티브 맥코넬 -[ 7/7! ] 소프트웨어 공학 강력 추천 책! (0) | 2021.02.01 |
클린 소프트웨어 : 애자일 원칙과 패턴, 그리고 실천 방법 - 엉클밥 - [5/7] (1) | 2020.09.17 |