리팩토링(Refactoring) 이란? :: iopeni - Think of C#

Refactoring 이란 단어는 영어 사전에는 존재 하지 않습니다.


factoring의 의미가 직역 하였을 경우 인수 분해 라는 뜻을 가지고 있으므로 다시 인수 분해 한다 라는 뜻으로 봐도 무방 하다????? 라고 생각 할 수도 있겠습니다.


마틴 파울러의 Refactoring 이라는 책이 2002년에 출간 되었다가 절판 이후 2012년 11월에 다시 출간 되었습니다.



 교보 문고의 서적 소개를 보면 이 책은 개발 1~2년차가 보기에 적합한 것으로 명시 되어 있지만, 개인적인 소견으로는 누구든 소프트웨어 개발직을 업으로 삼고 있는 사람이라면 한번쯤은 볼 만한 책이라고 생각 됩니다.


책의 난위도는 매우 쉽습니다. 그냥 한번 쭈욱 읽어 나갈 수 있는 그런 책 입니다.


이 책의 제목에서 표기 하고 있듯이 리팩토링이란 코드 품질을 개선하는 객체지향 사고법이라고 정의 되어 있습니다.


여러분은 GOF의 Design Pattern을 여러분의 프로젝트에 적극적으로 활용 하고 계신가요? 만약 Design Pattern의 달인 이라면 이 책을 보실 필요는 없습니다.


이 책의 저자 마틴 파울러가 이런 말을 하고 있습니다. "모든 개발자는 디자인 패턴에 머물고 싶어 하고, 리팩토링은 디자인 패턴에 도달 할 수 있도록 하는 방법이다." 라고 말이죠.


예전 아르바이트로 프리랜서 일을 했던적이 있는데 당시 개발 2~3년차 된 친구의 코드를 보고 깜짝 놀랜적이 있습니다.


너무 깔끔하고 OOP가 적용 가능한 언어가 아닌 Visual Basic 6를 가지고 Singleton, Observer등등 몇가지 패턴들을 구현해 놓았더군요.. 제 상식으로 이게 가능해? 라는 의문을 가지고 있을 쯤 이 친구가 자기는 Refactoring 이란 책을 보고 너무 깊은 감명을 받았다고 저에게 이야기 해 주더군요


깔끔한 코드.... 유지 보수 하기 좋은 코드... 남에게 보여주기 부끄럽지 않은 코드... 이런 코드를 원하신다면 이 책을 한번쯤 보는 것을 강력 추천 합니다.


글을 쓰다 보니 책 장사가 되어 버린것 같습니다. 참고로 저는 책 장사는 절대 아닙니다.


앞으로 리팩토링이라는 주제를 가지고 단지 제가 느끼는 것들을 좀 적어 볼까 하는 욕심에 이런 코너를 두고 이 책을 보며 제가 느끼는 것들을 정리 하려 함일 뿐입니다.


뒤늦은 공부... 뒤늦은 깨우침이 아쉬울 뿐입니다.



Posted by 프로그래머란 카페인을 코드로 변환하는 기계다
,