어느 분야에나 고전이라고 할 수 있는 책들이 있다.
비교적 역사가 짧은 소프트웨어 분야에서도 고전의 반열에 꼽을 수 있는 책들이 있다.
이 책 '리팩터링'도 그 중 한권이다.
초판이 나온지 거의 20여년만에 개정판이 나왔다.
마틴 파울러라는 이름만으로도 이 책은 꼭 봐야 할 책이다.
1판과 개정판의 가장 큰 차이는 코드이다.
전작이 '자바'로 설명을 했다면, 이번에는 '자바스크립트'로 설명을 하고 있다.
리팩토링의 원칙이나 기법 등 기본원칙은 전작과 크게 차이가 나지 않는다.
우리나라 IT의 특성상 자바가 대세를 이루고 있긴 하지만, 자바스크립트 진영의 위세도 만만치 않다.
기존의 자바 코드에 아쉬움을 느꼈던 독자들은 이 책이 무척 반가울 것이다.
자바스크립트에 대한 깊은 이해가 필요한 것도 아니고, 자바스크립트에 특화된 리팩토링을 제시하고 있지도 않다.
저자의 말대로 리팩토링에 대한 각 언어만의 특수성은 있겠지만, 이 책에서는 일반적인 사항을 말하고 있다.
다만 예를 든 코드가 자바스크립트일 뿐이다.
여러가지 상황에 대해 리팩토링 하기 전,후의 짤막한 코드를 보여준다.
그리고 리팩토링으일 해야 하는 배경을 설명하고, 절차를 보여준다.
자바스크립트 코드로 예시를 보여주면서 상세한 설명을 한다.
마지막으로 더 가다듬기, 더 읽은거리를 통해 심도있는 리팩토링을 할 수 있도록 해준다.
리팩토링이 된 코드가 이전보다 코드양이 적다는 오해를 하지 않았으면 한다.
리팩토링이란 말 그대로 구조를 변경하는 것이다.
더 좋은 구조로 변경하는 것에 중점을 두고 있기에 코드가 더 늘어날수도, 적어질수도 있다.
간혹 리팩토링 전과 후의 코드를 보고 놀라는 분들이 있는데, 리팩토링으로 불필요한 코드를 줄일수는 있지만, 반드시 그런 것은 아님을 알았으면 좋겠다.
좋은 설계, 좋은 코드로 이루어진 소스도 시간이 지나면서 점점 복잡하고 지저분해 진다.
담당자의 교체, 요구사항의 변경, 프로젝트의 수정 등 여러가지 요인이 있을 수 있다.
지속적인 리팩토링을 통해 좋은 코드를 유지해야 한다.
프로그래머라면 이 책을 항상 곁에 둘 책이라 생각한다.