레거시 스파게티 코드 개선 전략 (feat. 테스트 그물잡기)
- 스파게티 코드는 어느 회사에나 존재하며, 역설적으로 동작하는 코드 자체가 가장 신뢰할 수 있는 자산이다. 🍝
- 큰 문제 해결을 위해 API나 UI 기반 E2E 테스트, 즉 '그물 잡이' 전략을 활용하여 가장 바깥쪽부터 촘촘하게 테스트를 구축한다. 🎣
- 실제 API 요청/응답 로그를 기반으로 통합 테스트 코드를 작성하여, 특정 리퀘스트에 대한 리스폰스를 검증하는 방식으로 접근한다. 🧪
- 확보 가능한 모든 유즈 케이스에 대해 테스트 코드를 작성하고, 로컬 환경에서 반복 가능한 테스트를 통해 코드 장악력을 높인다. 🔑
- 테스트 기반 리팩토링 후 부분적으로 트래픽을 투입하며 문제 발생 시 롤백하는 방식으로 점진적으로 커버리지를 늘려간다. 🔄
- 잦은 배포를 통해 리팩토링 결과를 빠르게 검증하고, 점진적으로 작은 그물을 만들어 반복적인 테스트를 수행한다. 🚀
- 전면 개편 시에도 기존 코드의 동작 방식을 이해하기 위한 테스트는 필수적이며, 하위 호환성을 고려해야 할 경우 특히 중요하다. 💡