누구나 쉽게 따라 할 수 있는 레거시 코드 개선!
현업에서 개발자 대부분은 신규 프로젝트를 수행하는 것보다 이미 구현된 프로젝트를 유지보수하거나 기능을 추가하는 업무를 주로 한다. 즉, 레거시 코드를 파악하고 레거시 코드에 기능을 추가하거나 수정하는 일이다. 하지만 많은 개발자가 레거시 코드를 다룰 때 어려움을 토로한다. 레거시 코드를 개선하거나 활용하는 데 적지 않은 시간과 노력이 들고, 자신이 만든 코드를 자신이 알아보지 못하는 경우도 종종 생기기 때문이다. 또한, 오랫동안 개선하지 않은 레거시 코드는 개선 기간을 산정할 수 없을 정도까지 엉망이 되어버린 경우도 종종 볼 수 있다.
레거시 코드의 개선 작업을 하는 가장 큰 이유가 여기 있다. 로직이나 기능을 구현한 코드를 다른 사람이 쉽게 파악하게 하고, 기능의 확장이나 수정이 필요할 때 빠르고 안전하게 대응하기 위해서다. 물론 레거시 코드를 개선한다고 해서 이런 문제가 모두 사라지는 것은 아니지만 같은 문제가 발생하는 확률은 눈에 띄게 줄어든다. 그런데 레거시 코드의 개선은 많은 장점에도 불구하고 현업에서는 쉽게 행해지지 않는다. 리팩토링 만으로 레거시 코드를 개선하기에는 부담되고, 함부로 건드렸다가는 예상치 못한 예외 상황이 발생하여 곤경에 처할 수 있기 때문이다. 그래서 현업에서는 안전하고 효율적인 레거시 코드 개선을 원한다.
이 책은 복잡하고 좋지 못한 레거시 코드를 안전하고 효율적으로 개선할 구체적인 방법을 소개한다. 코드가 복잡하다면 TDD 또는 단위 테스트를 작성하여 구현체를 안전하게 수정하고, 문제 해결 방법을 패턴화하여 구현체의 유형만 파악하면 쉽게 수정하는 방법을 제시한다. 또한, 이해하기 쉽게 Step by step 형식으로 레거시 코드의 개선 과정을 보여주며, 현업에서 겪을 수 있는 구체적인 예제를 소개하고 예상되는 질문과 그에 따른 답변을 중심으로 스토리를 전개하여 독자가 쉽게 접근하고 이해할 수 있게 돕는다. 독자는 이 책을 통해 안전하고 쉽게 그리고 효과적으로 레거시 코드를 개선하는 방법을 배울 수 있을 것이다.