테스트 코드는 꼭 필요한가요?

결혼하고 나니 체중이 늘기 시작한다. 혼밥에 비해 대화가 있는 식사 시간은 편하고 여유로워 섭취량이 부쩍 늘었나 보다. 자연스레 손에 뱃살이 잡히고 건강의 적신호라 여겨 아침마다 조깅하고 있다.

나름 꾸준하게 운동하지만, 체중이 늘어나니 운동복으로 갈아입는 것부터가 귀찮아진다. 온갖 핑계를 대며 게으름 피우다 마침에 밖에 나가 뛰고 돌아오면 그렇게 기분 좋을 수가 없다. 굳이 권위자의 말을 빌리지 않더라고 달리기는 행복 패턴의 마중물 역할을 한다는 것은 경험을 통해 익히 잘 알고 있다.

한 달 정도 토이 프로젝트를 하고 있다. 주로 회사에서는 프론트 엔드 일만 하다 보니 백 엔드 기술에 멀어져가는 것이 아쉽기 때문이다. 데이터베이스에서부터 화면까지 데이터를 흘려보내는 간단한 기능을 완성했다.

그런데 마음 한 쪽에 뭔가 더 해야 한다는 아쉬움이 남아 있었다. 결과물에 대한 자신감이 부족했는데 바로 테스트 코드를 작성하지 않은 것이다. 자동화된 테스트의 중요성은 경험을 통해 잘 알고 있었지만, 막상 오랜만에 하려고 하니깐 시작이 어려웠다.

마침 이번 연휴에 시간이 되어 API 종단 간 테스트를 작성했다. 이전과 별다른 점은 없었다. mocha와 supertest 를 주로 사용했다. 전에는 should로 검증했는데 이젠 supertest 만으로도 충분했다. 필요하면 assert를 사용하는 것이 더 단순해 보인다. 무엇보다도 내가 작성한 코드가 잘 돌아간다는 것을 확인할 수 있었고 자신감도 생기기 시작했다. 직접 http 요청 보내서(curl이나 postman으로) 확인하는 것이 아니라 자동화되었다는 점이 중요하다.

테스트 코드 → 기능 개발?

순서가 중요하지는 않는 것 같다. 어떻게 일을 하든지 만들어 놓은 코드가 잘 돌아간다는 것을 검증할 방법을 마련하는 것이 더 중요하다고 생각한다.

QA의 지원을 잘 받는 것도 방법일 수 있다. 그러나 사람이 수행하는 테스트라면 오류는 피할 수 없겠지. 그런 점에서 컴퓨터가 수행하는 테스트는 더 중요하다.

테스트 코드 작성하는 습관이 몸에 배도록 훈련하자. 꾸준한 조깅이 행복한 기분과 건강을 지켜주는 것처럼, 테스트 코드를 작성하는 습관은 내가 하는 일에 자신감을 선사하고 고품질의 제품을 만들어 줄 것이라 기대한다.