니 덕에 덜 고생
작년 여름이 끝나갈 무렵에 S사 프로젝트를 시작하기 전에 만든 보안 관련 모듈이 있다. 이 모듈을 사용할 부서에 넘겨주고 맘 편히 S사 프로젝트를 수행하러 파견을 갔다.
그리고 1년 6개월 지난 시점. 바로 지금이다. 서버 구성을 바꾸는 과정에서 특정 클라이언트의 접속을 거절하는 문제가 발생했다. 마침 해당 부서의 프로젝트를 수행하는 중이어서 현장에 바로 있었다. 문제의 원인을 찾기 위해 모듈의 소스 코드를 소스 리포지토리에서 내려 받고 서버에 남겨진 로그와 비교를 했다.
문제 상황에 맞는 테스트 코드를 찾고, 문제 상황에 맞게 테스트 코드를 수정한 뒤, 테스트를 실행했다. 빨간 막대다. 바로 의심되는 부분을 찾았다. 서버 구성을 변경하는 과정에서 상수처럼 사용하는 값의 패턴이 바뀐 것을 알았다. 해당 패턴을 사용하도록 코드를 수정하고 테스트를 다시 실행했다. 녹색이다.
문제 원인을 설명한 뒤에 새로운 jar 파일을 만들어 웹 어플리케이션에 넣었다. 해당 웹 어플리케이션을 war로 말아 서버에 배포하고 웹 어플리케이션을 재시작했다. 그리고 문제는 사라졌다. 끝!
이 모듈은 접근 권한이 있는지 확인하기 위해 서블릿 필터를 이용한다. 테스트 코드가 없었다면 문제 원인을 찾거나 제대로 동작하는지 확인하기 위해 모듈을 기존 war에 포함시키고 해당 웹 어플리케이션을 재구동하는 과정을 수차례 했을 것이다. 테스트 코드 덕에 서버 구동과 같은 과정없이 문제를 찾고 해결할 수 있었다.
다시 한번 느낀다. 테스트 코드 덕에 덜 고생함을.