책 리뷰

[책] 리팩토링 - 프로그램의 가치를 높이는 코드 정리 기술

seungdols 2015. 11. 5. 22:30

IT 도서 리뷰


리팩토링

리팩토링 (Refactoring)

저자 : 마틴 파울러 , 켄트 벡

이 책은 코드를 정리하는 절차에 관한 책이다. 사실 리팩토링 기법과 디자인 패턴은 아주 면밀한 관계를 지니고 있다. 리팩토링이란?

겉으로는 드러나지 않지만, 코드의 기능은 바꾸지 않으면서
내부 구조를 개선하는 작업을 말한다.

쉽게 말해 기능적인 부분은 변화시키지 않으면서도 코드를 깔끔하고, 새로운 기능이 쉽게 추가 될 수 있게끔 구조를 변경하는 작업을 말하는 것이 바로 리팩토링이다.

리팩토링은 왜 해야 하는가? 사실 지루하고 재미 없는 작업일 수 있다. 그런데 사실 개발 일을 하게 되면, 내가 작성하는 코드보다 남이 작성했었던 코드를 봐야 하는 시간이 더 많다. 왜냐면 새로 프로젝트를 나가는 SI 분야가 아니라면 기존 프로젝트나 기존 프레임 위에서 작업 할 가능성이 더 높다.


소프트웨어 공학적으로 신생 프로젝트가 완전히 끝나는 경우가 드물다고 할 정도라니…


우선 책의 내용은 첫장은 맛보기예제로 시작한다. 그래서 실제 프로그램 샘플을 주고, 마틴 파울러 저자가 실제 리팩토링 기법을 적용하는 상황을 설명하며, 코드를 정리하는 모습을 보여준다. 사실 이 부분에서는 이런! 방법이 있구나만 보고 넘어 가고, 다시 한 번 보는 것이 좋을 듯 하다.
참고로 이 책의 예제는 Java 코드로 이루어져있다. 저자가 가장 자주 사용하는 언어이기도 하고, 객체지향의 미를 뽐낼 수 있는 것도 Java가 적당하기 때문이다. 그리고 2장에서는 리팩토링을 하는 이유!에 대해서 설명을 한다.


물론 이러한 이야기들은 자바지기님께서도 언급한 적이 있었다. 자바지기님의 글 옆의 링크는 가서 꼭 읽어 보길 바란다. 리팩토링에 대해 얼마나 중요한지 자바지기 박재성님께서도 강조하고, 댓글의 여러 개발자분들도 말하곤 한다. 확실히 말하건데 당신이 개발자로 일하는 동안 기능의 추가나 다른 사람의 코드를 이어 받아 작업 해야 하는 상황이 온다면, 리팩토링을 해야 한다. 아주 중요한 실력의 문제로도 논할 수 있다.


추가적으로 이 책에서 언급하는 것 중에 가장 강조하는 것이 테스트이다. 테스트를 무조건 한다. 특히 Junit이라는 신기하고도 아주 유용한 테스트 프레임워크가 존재하기에 그러한 프레임워크를 사용하여 테스트를 작성하는 것이 옳다. 테스트에서 유닛 테스트의 경우 100명의 개발자가 있다면 70명정도의 개발자가 유닛 테스트를 작성하지 않는다고 한다. 그런데 이 것은 상당한 큰 문제라고 한다. 더군다나 대한민국 IT 개발 실정으로는 QA팀이 전담으로 배치되는 일은 거의 없기에 개발자가 스스로 테스트를 해야 한다고 들었다. (물론…하려고 하는 편에 속한다..)


다음엔 유닛테스트 책에 관해 리뷰를 하고 정리를 해야겠다는 생각이 들었다…..(주문좀…)
어찌하든 간에 이 책에서 실제 리팩토링이 나오는 부분은 리팩토링 카탈로그 6장부터인데, 이 때부터 내 머리가 …. 아득해지며…

그렇지만, 우선 유닛테스트는 다음 블로깅의 역사로 남기고 일단, 리팩토링에 대해서만 생각해보면, 실은 나도 이 책을 보면서 .. 아 !
진짜 내가 얼마나 초보 개발자인지를 깨닫게 되었다…(실제로는 예비 개발자 초보 개발자도 아님)
정말 이 책은 디자인 패턴 책과 함께 보관하며 계속 봐야 할 책인것 같다. 

그래서 일단 이 책의 내용 조금은 티스토리에 블로깅을 했으나, 많은 깊이감이 존재하는 내용은 클래스 다이어그램을 그려야 하므로 아직 작업하지 않았다. 

사실 나도 아직 클래스 다이어그램을 보고 어! 이거 그거다! 하기 어려운 실력의 소유자이므로…

그러므로 결론적으로 이 책은 필독서!라고 말 하고 싶다. 사실 좋은 책은 여러 번 읽는 습관이 있어서 이 책은 올해 끝나기 전에 다시 한 번 볼 예정이다. 그 때 실제 예시를 가지고 적용을 해보려고 한다. 그 예제가 된다면, 블로그에 남기도록 하겠습니다..그렇지만, 아마 예제를 쓸 가능성이 높을 것 같은 경향이 없지 않아 있네요 ? ㅎㅎ


상세보기

결론 : 프로그래머라면 봐야 할 아니 계속 끼고 다녀야 할 필독서

같이 보면 좋은 책 : 

2015/11/05 - [책 리뷰] - GoF의 디자인 패턴


2015/10/20 - [Refactoring] - Refactoring 1. 리팩토링의 시작



  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.




반응형