본문 바로가기
공부/개발 & 컴퓨터

리팩터링 2판 (Refactoring)

by algosketch 2022. 1. 3.

https://book.naver.com/bookdb/book_detail.naver?bid=16311029 

 

리팩터링

개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 이 책의 1판은, 기

book.naver.com

최근에 이 책을 다 읽었다. 1판은 Java 로 쓰였고 2판은 JavaScript 로 쓰였다. 2판을 쓸 때는 JavaScript 의 점유율이 높아서 JavaScript 로 개정판을 냈다고 한다. 그렇다고 해서 JavaScript 에만 적용할 수 있는 리팩터링은 아니니 걱정하지 말자. 다른 언어 개발자라도 개발 경험이 어느정도 있다면 충분히 이해할 수 있는 내용이다. 개인적으로 Kotlin In Action 후반부보다 쉬웠다. (그러고보니 지난 달에 Kotlin In Action 도 다 읽었는데 후기를 안 썼다.) 내용은 어렵지 않으나 프로젝트 경험이 없다면 어렵거나 공감되지 않는 내용일 수 있다. 나같은 경우 한 파일의 코드를 줄이려고 노력해도 줄이기 힘들었던 경험이 여러 번 있었다. 이런 경험이 있는 경우 어떻게 기능을 분리해야하는지 힌트를 얻을 수 있다.

이 책을 읽고 가장 많이 적용했던 기법은 함수 추출이다. 프로젝트를 진행하면서 동시에 책을 읽었기 때문에 적용하기 쉬운 함수 추출은 이미 수십 번이상 적용해 보고 체화시켰다. JetBrains IDE 를 사용할 경우 함수 추출과 같은 간단한 리팩터링은 IDE 차원에서 지원한다. 저자에 의하면 최신 IDE 는 기능이 뛰어나기 때문에 IDE 에서 리팩터링을 지원한다면 해당 리팩터링은 따로 사람보다 에러가 날 확률이 적다고 한다.

특별히 어려웠던 부분은 없으나 리팩터링 방법은 다양해서 모두 적용해보지는 못 했다. 당장 다 써보기에는 리팩터링의 필요성도 아직 느끼지 못 한 부분도 있어서 경험을 더 쌓아야할 것 같다. 새로운 프로젝트에서는 다음 리팩터링은 적용해보려 한다. 캡슐화, switch 문을 다형성으로 바꾸기, 필요하다면 factory method 함수 만들기, 위임 사용해 보기. 꼭 이 리팩터링을 적용한다기보다 이것들을 고려하면서 코드를 짜겠다는 의미이다.