나에게 레거시 코드는 테스트가 없는 코드입니다.
마이클 페더스(Michael Feathers) 《레거시 코드로 효과적으로 일하기》
레거시 코드는 주관적 해석이 강한 언어입니다.
코드에 대한 이해에 따라 이것이 레거시한지? 아닌지? 를 파악할 수 있습니다.
코드를 잘 짜고 싶은 마음이 있기는 하지만, 프로젝트의 특성상 데드라인이 존재합니다.
이는 나쁘다고 할 수는 없습니다. 그러나, 레거시 코드가 생기는 것에는 경계할 필요가 있습니다.
프로그래머는 공부를 꾸준히 해야 하는 직업입니다. 특히나 보안 이슈가 생길 만한 코드를
구현이 가능하다는 이유로 사용하게 되면, 해당 서버는 문제가 생길 가능성이 큽니다.
서버의 트래픽과 리소스를 효율적으로 만들 수 있는 방법도 연구해가며 적용해야 합니다.
API 요청 방식인 REST 와 GraphQL 도 서로의 장단점이 있는 것과 같이 모든 코드에는 더욱 효율이 좋은 기법이 존재하게 됩니다. 이에 맞추어 개발에 적용하는 것은 많은 경험과 노하우를 통해서 활용할 수 있습니다.
아무리 테스트를 거친 코드라고 해도, 시간이 지나면 버전이 업데이트 되면서 다시 한번 코드를 수정해야 할 때가 옵니다. 결국 잘 짜여진 코드도 관점에 따라 레거시가 될 수 있는 것이죠.
코드를 보다 간결하고 사용하기 쉽게 만드는 과정을 리팩토링이라고 합니다.
리팩토링의 필요성이 있는지에 대한 의문을 가진 블로그 글을 봤고, 계속 생각해 봤습니다만,
특히 규모가 큰 업체의 경우 코드 정제 과정은 엄청난 생산성과 보안적인 이슈를 해결할 수 있다고 생각합니다.
그만큼 코드에 대한 이해와 공부, 일관된 규칙과 철학을 가지고 봐야 하기 때문에 쉬운 작업은 아닙니다.
저는 현재 마틴 파울러의 리팩터링 2판을 구매하여 천천히 보고 있습니다.
1판에서는 예제 코드가 자바였고 2판에서 자바스크립트로 변경되었다는 소식을 듣게되어 구매하게 되었습니다.