테스트 없는 레거시 모듈 식별 후 단계적 리팩터링 경험 중심으로 푸는 결
사이드 프로젝트에서 초기에 빠르게 만든 인증 모듈이 기술 부채로 남아 있었습니다. 처음에는 동작하기만 하면 됐기 때문에 예외 처리도 없고 테스트도 없었는데, 기능이 추가될수록 그 모듈을 건드리는 게 두려워졌습니다. 수정할 때마다 다른 데서 무너지는 일이 반복됐습니다. 저는 먼저 그 모듈에서 어떤 부분이 가장 자주 변경되는지를 파악했습니다. 토큰 만료 처리와 리프레시 로직이 집중적으로 바뀌는 구간이었고, 거기서부터 단위 테스트를 붙이기 시작했습니다. 전체를 한 번에 교체하기보다 테스트를 먼저 만들고 그걸 통과하는 코드로 조금씩 대체하는 방식을 썼습니다. 완전한 리팩터링에는 약 2주가 걸렸고, 그 이후에는 같은 구간에서 버그가 거의 나오지 않았습니다. 결정 과정에서 고민했던 건, 지금 당장 작동하는 코드를 건드리는 것의 리스크였습니다. 테스트 없이 리팩터링하면 오히려 더 망가질 수 있어서, 테스트 선작성이 리팩터링의 안전망이 된다는 걸 직접 경험했습니다. 기술 부채를 한 번에 다 갚으려 하지 말고, 자주 변경되는 곳에서부터 시작하는 게 현실적이라고 봅니다.