Jest 테스트 코드(1) 테스트 코드를 작성해야 하는 이유

라형선·2024년 10월 5일

테스트 코드를 작성해야 하는 이유

코드의 품질 보장

테스트 코드는 개발한 기능이 정상적으로 동작하는지 확인하는 방법으로, 코드의 품질을 높여줍니다. 테스트를 통해 버그를 사전에 발견하고, 예상치 못한 에러가 발생하는 것을 줄일 수 있습니다.

안전한 리팩토링

리팩토링을 진행할 때 테스트 코드가 있다면 기존 기능이 제대로 유지되고 있는지 쉽게 확인할 수 있습니다. 이를 통해 리팩토링으로 인한 오류를 미리 방지할 수 있습니다.

문서의 역할

테스트 코드는 그 자체로 코드가 어떻게 동작해야 하는지에 대한 문서 역할을 할 수 있습니다. 다른 개발자가 테스트 코드를 읽음으로써 기능의 의도나 사용법을 쉽게 파악할 수 있습니다.

개발 속도 향상 (장기적인 관점)

단기적으로는 테스트 코드 작성이 시간이 더 들 수 있지만, 장기적으로는 버그를 줄이고, 빠르게 피드백을 받아 수정할 수 있으므로 전체 개발 기간의 속도를 높일 수 있습니다.

신뢰성

자동화된 테스트를 통해 코드가 예상대로 동작함을 보장할 수 있기 때문에 제품의 신뢰성을 높일 수 있습니다. 이는 특히 중요한 기능이나 시스템 전체의 안정성에 큰 영향을 미칩니다.

배포 후 이슈 감소

배포 전에 자동화된 테스트를 거침으로써, 배포 후 발생할 수 있는 문제들을 크게 줄일 수 있습니다. 이를 통해 유저에게 더 안정적인 제품을 제공할 수 있습니다.
테스트 코드를 작성하지 않는 이유

개발 속도 저하 (단기적인 관점)

테스트 코드를 작성하는 데 시간이 필요하기 때문에, 초기 개발 단계에서 속도가 느려질 수 있습니다. 특히 빠르게 MVP(Minimum Viable Product)를 만들고 싶은 상황에서는 테스트 작성이 부담스러울 수 있습니다.

복잡성 증가

간단한 프로젝트에서는 테스트 코드가 오히려 복잡성을 증가시킬 수 있습니다. 예를 들어, 작은 개인 프로젝트나 실험적인 프로토타입의 경우 테스트 코드가 필수적이지 않을 수 있습니다.

추가적인 유지보수 비용

테스트 코드는 애플리케이션 코드가 변경될 때마다 업데이트가 필요합니다. 따라서 테스트 코드의 유지보수도 추가적인 시간과 자원이 요구되며, 이를 관리할 수 있는 팀 리소스가 부족하다면 부담이 될 수 있습니다.

테스트 코드의 품질

잘못 작성된 테스트 코드는 오히려 문제를 더 복잡하게 만들 수 있습니다. 테스트 코드가 불완전하거나 코드의 의도를 잘못 이해한 상태에서 작성되면, 잘못된 신뢰성을 가질 수 있습니다. 이는 '거짓 양성(false positive)'이나 '거짓 음성(false negative)'의 문제를 발생시키며, 코드의 품질에 악영향을 줄 수 있습니다.
테스트가 필요한지 불명확할 때

테스트 코드 작성이 유용하지 않은 경우도 있습니다. 예를 들어, UI 변경 같은 경우는 자동화 테스트로 테스트하기 어려운 부분이 많고, UI가 자주 변경되면 테스트를 유지보수하는 비용이 커질 수 있습니다.

언제 테스트 코드를 작성해야 하는가?

핵심 기능: 로그인, 결제, 데이터베이스 연동 등 중요한 기능은 반드시 테스트 코드가 필요합니다.
자주 변경되는 코드: 변경이 자주 일어나는 코드에 테스트를 작성해두면, 이후 변경 시에 생기는 문제를 빨리 발견할 수 있습니다.
협업 환경: 여러 개발자와 함께 일할 때, 테스트 코드는 코드가 서로 의도한 대로 작동하는지 검증하는 수단이 됩니다.

언제 테스트 코드를 작성하지 않아도 되는가?

빠르게 프로토타입을 개발할 때: 시장 반응을 보기 위해 빠르게 프로토타입을 만들고자 할 때는 테스트를 생략할 수 있습니다. 다만, 성공 후 유지보수를 할 단계에서는 테스트를 추가하는 것이 중요합니다.
작고 간단한 프로젝트: 일회성 프로젝트나 단순 기능만을 포함한 프로젝트는 테스트가 필요하지 않을 수 있습니다.
UI/UX의 빈번한 변경: 화면이나 인터페이스가 자주 바뀌는 경우, UI 테스트는 매우 자주 업데이트가 필요하므로 비용이 많이 들 수 있습니다.

profile
형선

0개의 댓글