REFACTORING

 

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

 

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

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이번에 리뷰 할 책은 리팩터링이다.

 

리팩터링 (refactoring) 이란?

소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 버그를 없애거나 새로운 기능을 추가하는 것은 아니며, 주로 가독성을 높이고 유지보수를 편하게 함을 뜻한다.

 

개발자로 일하면서 어느 정도 기간이 누적되다 보면 과거의 본인이 작성한 코드에 직면할 때가 있다. 이거 누가 작성한 코드야...?

아니 적어도 알아볼 수는 있게 해놔야 할 것 아냐?

 

다시금 보면 과거의 내가 작성한 코드를 알게 되고, 미래의 내가 오늘 작성한 코드를 보면서 똑같은 생각을 반복할 것이다.

 

리팩터링이란 용어가 프로그래밍 세계를 자리를 잡으면서 마틴 파울러의 리팩터링 책은 교과서처럼 꼭 읽어야 하는 도서가 되었다.

 

읽어 봐야지 생각만 하다가 한빛미디어 리뷰 목록에 나와서 재빠르게 캐치를 했고 정독을 다 해보지는 못했지만, 정독을 위한 리뷰를 남기고자 한다.

 

리팩터링 1판의 나이가 18살일 때 2판이 나왔다는 사실이 너무 대단하다. 그만큼 원서가 힘이 가득한 책이었고, 2판이 나오면서 시대의 흐름도 잘 반영했다는 생각이 든다.

 

다시 이야기 해보자.

리팩터링이란 무엇인가?

작가는 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이라 한다. 버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 정제된 방법이다.

 

"리팩터링 한다는 것은 코드를 작성하고 난 뒤에 설계를 개선하는 일이다."

 

이게 무슨 해괴망측한 말인가? 다시 이해해보자.

리팩터링을 하면 잘못된 설계나 심지어 엉망인 설계를 가져다가 체계적으로 설계된 코드로 탈바꿈할 수 있다.

이대로 듣자니 쉬운 일이 아닌 것 같은 느낌이 든다.

 

하지만 이 책을 읽으면 생각보다 어렵지 않구나?라는 생각이 들 것이다.

 

한 클래스의 필드를 다른 클래스로 옮기고, 일부 코드를 메서드 밖으로 빼서 별도의 메서드로 만들고, 코드 일부를 상속 구조의 위/아래로 올리거나 내리는 등의 작업으로 충분히 가능하다.

 

어떤가? 흥미롭지 않은가?

 

개발자들이여. Kingsman의 Harry가 늘 하는 말이 있다.

"MANNERS MAKETH MAN"

 

본인이 작성한 코드는 또 언젠가 누군가에게 보이는 코드가 될 것이다.

그들이 알아보기 쉽게 작성을 하고 설계를 이해하기 쉽게 해주는 아름다움을 이 책을 통해 장착하자.

 

(두께가 만만치는 않다. 하지만 꼭 완독 해내자.)

 

REFACTORING

 

매너 있는 개발자에게 꼭 필요한 책이다.

+ Recent posts