
최근 길벗 IT 부서에서 주최하는 개발자 도서 리뷰 모임에 참여하게 되었다. 평소에 Kotlin 관련 도서를 직접 사서 읽곤 했는데, 이번에는 테스트 관련 서적인 "단위 테스트의 기술"을 제공받아 읽게 되었다. 특히, 코드 리뷰와 TDD(테스트 주도 개발)에 대한 깊이 있는 내용을 읽을 수 있었다.
1. 테스트의 3가지 종류
이 책에서는 테스트의 개념과 중요성에 대해 다룬다. 우리가 흔히 아는 테스트에는 다음과 같은 세 종류가 있다.
- 단위 테스트(Unit Test)
- 통합 테스트(Integration Test)
- E2E(End-to-End) 테스트
특히, 이 책은 단위 테스트에 초점을 맞추고 있으며, 최근 개발자 커뮤니티에서 지속적으로 논의되고 있는 TDD(테스트 주도 개발)와 관련된 내용도 다룬다.
2. 테스트에서 의존성 분리
책을 읽으며 가장 인상 깊었던 부분은 3장인 '테스트의 핵심 기술'이다. 여기서는 의존성 분리에 대한 다양한 기법을 설명하며, 테스트 코드의 유지보수성과 가독성을 높이는 방법을 다룬다. 이전에는 단순히 다른 개발자들이 작성한 방식대로 테스트 코드를 작성했었는데, 이번 기회를 통해 의존성 유형과 주입 방식에 대한 체계적인 정리를 할 수 있었다.
특히 인상 깊었던 내용은 다음과 같다.
- 의존성 유형
- 의존성 주입 방법
- Mock을 통한 상호작용 테스트
Mock을 활용한 상호작용 테스트를 다루는 부분에서는 단순히 단위 테스트를 작성하는 것에 그치지 않고, 테스트를 통해 시스템의 동작을 더욱 신뢰할 수 있도록 만드는법을 고민하게 되었다.
3. 신뢰할 수 있는 테스트와 코드 품질
7장에서는 신뢰할 수 있는 테스트에 대한 논의가 이루어진다. 테스트를 "단순히 통과해야 하는 코드"로 삼는게 아니라, 서비스의 최종적인 유지보수성과 신뢰도를 높이는 요소가 되어야 함을 강조한다.
또한, 9장은 코드 가독성과 관련된 내용이었는데, 현재 프로젝트를 멘토링 해주시는 컨설턴트님의 오전 세션에서 이에 대한 질문을 받게 되었다.
“테스트 코드를 작성했을 때 코드 품질이 좋아진 경험이 있다고 했는데, 그렇게 생각한 이유가 무엇인가요?”
당시에는 갑작스럽게 질문 받아 긴장해서 제대로 답변하지 못했지만, 나의 핵심적인 생각은 다음과 같다.
“테스트 코드의 가독성과 흐름을 고려해서 메서드를 설계하면, 본래 코드의 메서드도 자연스럽게 깔끔해진다.”
이 질답 시간 이후에, 다시 책을 읽으면서 테스트 코드가 단순히 기능을 검증하는 역할뿐만 아니라 더 좋은 코드를 추구하기 위한 기본기라는 생각도 들었다.
4. 테스트 전략과 팀 내 테스트 문화
마지막으로, 10장과 11장에서는 테스트 전략을 수립하는 방법과 팀 내에서 테스트 문화를 도입하는 과정에 대한 내용을 다룬다. 테스트 코드를 잘 작성하는 것이 단순한 '하드 스킬'이 아니라, 팀 내 협업을 증진하고 코드 품질을 개선하는 '소프트 스킬'적인 측면도 있다는 것을 실감했다.
5. 마치며..
이번 리뷰를 통해 단순히 테스트 코드 작성 방법을 익히는 것뿐만 아니라, 테스트가 코드 품질에 미치는 영향을 깊이 고민해볼 수 있었다. 특히, 의존성 분리, 신뢰할 수 있는 테스트의 필요성, 테스트를 통한 코드 가독성 향상 등의 주제는 실제 개발 환경에서도 적극적으로 적용해볼 가치가 있다고 생각한다. 앞으로 테스트를 더 잘짜는 개발자가 되어야겠다 :3
'Books' 카테고리의 다른 글
여름은 오래 그곳에 남아, 마쓰이에 마사시, 2012 (0) | 2021.05.31 |
---|