본문 바로가기
IT 도서 리뷰

[서평] 리팩터링 2판 Refactoring (마틴 파울러 지음, 한빛미디어) - 나의 코드가 고급스러워진다. 초보 개발자에서 한 단계 성장하기 위한 제안서

by 새봄아빠 2021. 3. 22.

코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기

리팩터링 2판 REFACTORING

(마틴 파울러 지음, 개앞맵시, 남기혁 옮김, 한빛미디어)



저는 한국 사람입니다. 그래서 우리말을 유창하게 잘합니다(?). 의사소통도 그럭저럭 잘하는 편이구요. 그런데 글은 썩 잘 못쓰는 편이라고 생각합니다. 내가 하고 싶은 이야기를 어찌저찌 말로는 표현하겠는데 체계적인 글로 표현하는 것은 참 어렵습니다.

 

저는 코딩 공부를 좋아합니다. 전문 개발자는 아니구요, 취미로, 재미로 프로그래밍 언어를 공부해보고 있습니다. 책도 따라하고 인터넷을 검색하고 유튜브 영상들도 보면서 만들어보고 싶은 프로그램들을 만들다보면 어려운 점들이 많습니다. 그 중에 하나는 제가 만든 코드는 다른 사람들이 만든 코드처럼 깔끔하고 알아보기 쉽지가 않습니다. 주석은 덕지덕지 달아놓지만 뭔가 정리되지 않은 방 같은 느낌을 받는달까요? 그러다보니 코드가 어찌저찌 결과는 나오는데 버그도 많고 나중에 유지보수도 매우 어렵더라구요. 몇줄 되지 않는 코드인데도 말이지요...


리팩터링?

"리팩터링은 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다."

 

요컨데 리팩터링은 코드를 작성하고 난 뒤에 설계를 개선하는 일이라고 할 수 있습니다. 글을 쓰고나서 탈고를 하는 것처럼 글의 의미는 바꾸지 않은 채 전달하기 효과적인 글로 다듬는 일이라고 할 수 있지 않을 까요?


다루는 내용

이 책은 전문 프로그래머를 대상으로 쓴 리팩터링 지침서입니다(저자의 말). 코드에 버그가 생기지 않게 하면서 구조를 더 체계적으로 바꾸는 식으로 리팩터링을 하는 방법을 설명하고 있습니다. 

 

책의 전반부(1장~4장)에는 리팩터링의 개념은 무엇이며 왜 필요한지, 리팩터링이 필요한 곳을 어떻게 찾는지, 테스트는 어떻게 구축하는 지 등을 다루고 있습니다. 이어 후반부(5장~12장)에서는 리팩터링 카탈로그(목록)이 펼쳐져 있습니다. 

 

  • 함수 추출하기 / 함수 인라인하기
  • 변수 추출하기 / 변수 인라인하기
  • 함수 선언 바꾸기 / 함수 캡슐화하기
  • 변수 캡슐화하기 / 변수 이름 바꾸기
  • 매개변수 객체 만들기 / 여러 함수를 클래스로 묶기 / 여러 함수를 변환 함수로 묶기
  • 단계 쪼개기

이처럼 코드 리팩터링을 위한 기본적인 개념을 6장에서 다루고 7장부터는 보다 다양한 리팩터링 전략들을 소개하고 있습니다.

 


대상 독자

이 책은 소프트웨어 개발을 직업으로 하는 전문 프로그래머들을 위해 쓰여졌다고 저자는 말합니다. 기본적으로 자바스크립트로 작성된 코드를 가지고 리팩터링을 진행합니다. 자바스크립트 언어를 아시는 분들은 어렵지 않게 책을 읽으실 수 있고 그렇지 않더라도 기본적인 프로그래밍 경험이 있다면 문제 없이 읽으실 수 있습니다. 저자는 사용하는 언어에 상관없이 모든 프로그래머들을 위해 이 책을 썼다고 합니다. 프로그램의 기본은 다 비슷비슷하니까요.

 

이 책은 프로그래밍 언어를 처음 다루는 분들을 위한 책은 분명 아닙니다. 코드 구조를 더 나은 구조로 만들고 싶은 열망을 가지고 계신분들은 필히 읽어보셔도 좋을 것 같습니다. 이 책을 카탈로그라고 설명합니다. 책장에 꽂아두고 있다가 어떤 단계의 리팩터링이 필요하다면 언제든 꺼내어 참고할 수 있는 책입니다.

 


소감

개인적으로 이 책을 읽으면서 과장을 조금 더한다면.... "감동받았습니다!" 내가 작성한 코드들이 어떤 문제들이 있고... 아니 사실 문제가 있다기 보다는 이 코드들을 이렇게 바꾸면 훨씬 깔끔한 모습으로 바꿀 수 있을지가 느껴지니 가슴이 두근거렸습니다.

 

물론 이 책을 한 번 읽었다고 저의 코딩 스타일이 바뀌지는 않겠죠. 하지만 코드를 보는 시각, 수정하는 기술이 무엇인지를 조금은 새롭게 보게 된 것 같습니다. 초보 취미 코더에서 조금 더 수준 높아진 코더, 개발자스러운 개발자로 한 층 성장하기 위해서 반드시 참고할 책이라고 감히 추천합니다.

 

프로그램의 가치를 높이는 코드 관리 기술이 궁금하다면 펼쳐보세요!

 

 

* 이 서평은 한빛미디어 "나는 리뷰어다" 활동으로 작성된 서평입니다.

* 서평단 활동과 관계 없이 저의 관심에 따라 읽고 느낌 점을 솔직하게 적었습니다.

 


YES24에서 책 구경하기

bit.ly/3s8soC0

 

리팩터링 2판

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

www.yes24.com

댓글0