본문 바로가기
교재 실습/자바 웹 프로그래밍 Next Step

2.5.1 테스트 주도 개발(Test Driven Development, 이하 TDD)과 리팩토링

by Jint 2025. 1. 12.

테스트 관련 내용을 학습하면 반드시 등장하는 것이 TDD 이다. TDD를 바로 연습하는 것도 좋지만 그보다는 JUnit을 활용해 테스트를 검증하는 방식으로 진행하다 한 단계 더 성장하고 싶을 때 도전할 것을 추천한다.

안정적으로 리팩토링을 하려면 반드시 견고한 테스트가 뒷받침하고 있어야 한다. 리팩토링의 첫 번째 단계가 프로덕션 코드에 대한 테스트 코드를 만드는 것인 만큼 두 주제를 같이 학습할 것을 추천한다. 이 두 주제를 학습하는 단계는 다음과 같이 할 수 있다.

 

· 먼저 "테스트 주도 개발: 고품질 쾌속개발을 위한 TDD 실천법과 도구" 책의 1장 공개 자료인 https://goo.gl/2ny56W를 통해 TDD가 무엇인지, 등장 배경은 무엇이며, 어떤 효과가 있는지 검통해 본다. 이 문서를 읽고 실습해본 후 이 장의 문자열 계산기를 TDD 방식으로 구현해 본다.

 

이 문서를 통해 TDD에 대한 대략적인 감을 잡은 후 본격적으로 학습하려면 "테스트 주도 개발"(Kent Beck 저/김창준, 강규영 역, 인사이트/2004년) 책과 "리팩토링 : 코드 품질을 개선하는 객체지향 사고법"(마틴 파울러 저/김지원 역, 한빛미디어/2012년)을 볼 것을 추천한다. 이 두 책은 TDD와 리팩토링에 대한 기본 원리, 실천 방법에 대해 자세하게 다룬다. "리팩토링" 책의 경우 5장부터는 전체 리팩토링에 대한 카탈로그를 제시하고 있기 때문에 책을 끝까지 읽기보다 4장까지는 반드시 읽고 나머지 카탈로그는 자신이 구현한 코드를 리팩토링하면서 카탈로그를 참조하는 방식으로 접근해도 좋다.

TDD와 리팩토링을 연습할 때 너무 복잡한 로직을 포함하고 있거나 외부 의존관계가 많은 코드(웹 UI, 모바일 UI와 연결된 코드, 데이터베이스와 연결된 코드)부터 시작하면 포기하기 쉽다. TDD도 익숙하지 않기 때문에 이전에 구현해 봤던 기능이나 외부와의 의존관계가 없는 코드로부터 시작하는 것이 좋다.

TDD와 리팩토링을 연습하기 가장 좋은 코드는 알고리즘이나 유틸리티 성격의 코드를 구현할 때이다. 알고리즘이나 유틸리티 성격의 소스코드는 크기도 크지 않고 완료 기준이 명확하기 때문이다. TDD로 충분한 연습을 한 후 다음 단계로 점차 복잡도가 높거나 외부와의 의존관계가 있는 코드로 확대해 나가는 방식으로 접근하는 것이 TDD를 체득하고 나만의 습관으로 만들 수 있는 좋은 길이다.



참고도서 : https://roadbook.co.kr/169

 

[신간안내] 자바 웹 프로그래밍 Next Step

● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ● 정가: 30,000원 ● 발행일: 2016년 9월 19일 ● ISBN: 978-89-97924-24-0 93000 [강컴] [교보] [반디] [알라딘] [예스24] [인터파크] [샘

roadbook.co.kr

댓글