장정우님이 지음, [스프링부트 핵심가이드 :: 스프링 부트를 활용한 애플리케이션 개발 실무] 책을 읽고 정리한 필기입니다.📢
테스트 코드를 작성하는 이유
개발 단계에서 테스트 코드를 작성하는 이유는 정말 다양하다. 대표적으로는 다음과 같은 이유가 있다.
- 개발 과정에서 문제를 미리 발견할 수 있다.
- 리팩토링의 리스크가 줄어든다.
- 애플리케이션을 가동해서 직접 테스트하는 것보다 테스트를 빠르게 진행할 수 있다.
- 하나의 명세 문서로의 기능을 수행한다.
- 몇 가지 프레임워크에 맞춰 테스트 코드를 작성하면 좋은 코드를 생산할 수 있다.
- 코드가 작성된 목적을 명확하게 표현할 수 있으며, 불필요한 내용이 추가되는 것을 방지한다.
테스트 코드를 작성하는 가장 큰 이유는 개발 과정에서 문제를 미리 발견할 수 있다는 것이다. 테스트코드를 먼저 작성하고 비즈니스 로직을 먼저 작성하든 아니든 테스트하는 것은 코드에 잠재된 문제를 발견하는 데 큰 도움이 된다. 물론 우리가 애플리케이션을 사용하면서 발생할 수 잇는 여러 상황에 맞춰 테스트 코드를 작성했다는 전제하에 가능한 이야기이다. 일부러 오류가 발생할 수 있는 테스트 코드를 작성해서 예외 처리가 잘 작동하는지를 확인하거나, 정확히 의도한 비즈니스 로직에 맞춰 테스트 코드를 작성해서 결괏값이 잘 나오는지 검토하는 등 개발 단계에서는 여러 테스트 코드를 통해 애플리케이션 코드를 검증하게 된다.
테스트 코드를 작성하는 두 번째 이유는 리팩토링의 리스크가 줄어든다는 점이다. 일반적으로 한번 애플리케이션이 개발되면 거기에서 멈추지 않고 서비스 업데이트를 위해 계속해서 코드를 추가하고 수정하는 작업을 진행한다. 코드를 추가하거나 수정하는 것은 그 코드와 연관된 다른 코드에 영향을 주는 작업이다. 만약 테스트 코드가 작성돼 있지 ㅇ낳다면 코드를 수정하는 과정에서 수시로 매뉴얼에 따라 애플리케이션의 동작을 검토해야 한다. 그러나 테스트 코드가 작성돼 있다면 테스트 코드를 실행해보는 것만으로도 혹시 모를 부작용에 대비할 수 있따.
테스트 코드의 또 다른 중요한 점은 명세 문서로서의 기능을 수행한다는 점이다. 개발자들은 대부분 협업을 통해 프로젝트를 진행한다. 다른 사람이 작성한 코드를 바로 이해한다는 건 쉽지 않다. 각자 코드를 개발하고 합치는 과정에서 어쩔 수 없이 충돌이 발생한다. 그러므로 코드를 이해하기 쉽게 개발자가 직접 명세를 작성하고 공유하는 과정을 거쳐야 하는데, 이 때 테스트 코드는 큰 도움이 된다. 동작 검증을 위해 작성돼 있는 테스트 코드를 애플리케이션 코드와 비교하면서 보면 작성자의 의도가 파악되어 동료의 코드를 이해하기 쉬어진다.
댓글남기기