-
리팩토링 : "외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로 소프트웨어 시스템을 변경하는 프로세스"
리팩토링은 객체지향적으로 프로그래밍을 할 수 있는 구체적인 방법을 제안해 줍니다.
일반적으로 프로그램 디자인을 하고나서 코딩을 하게 되지만, 코딩을 하고나서 리팩토링을 통해서 구조를 개선함으로써 프로그램이 좋은 디자인을 가지도록 만들어 줍니다.
마틴 파울러의 리팩토링이 원저이며, 곧 한빛미디어에서 다시 책이 나온다고 합니다.
처음 객체지향 프로그래밍 언어를 배울 당시에 읽었던 내용인데 그때는 어떤 부분이 좋은지 몰랐습니다.
그런데 최근에 다시 읽어보니 이제서야 왜 리팩토링이 필요하고, 이 책이 얼마나 좋은 책인지 알게 되었습니다.
코드를 개선하는 방법 자체는 그리 어렵지 않지만 어떤때에 왜 코드를 개선해야하는지에 대한 내용이 잘 나와있습니다.
"코드속의 나쁜냄새" 부분을 보면 어떤 대상들이 리팩토링의 대상이 되고 그 대상들이 좋지 않은 구조라는 것을 알 수 있습니다.
중복된코드, 긴 메소드, 거대한 클래스, 긴 파라미터 리스트, 확산적 변경, 산탄 수술, 기능에 대한 욕심, 데이터 덩어리, 기본 타입에 대한 강박관념, Switch 문, 평행 상속구조, 게으른 클래스, 추측성 일반화, 임시필드, 메시지 체인, 미들 맨, 부적절한 친밀, 다른 인터페이스를 가진 대체 클래스, 불완전한 라이브러리 클래스, 데이터 클래스, 거부된 유산, 주석.
책이 발간된 후에 새로이 업데이트된 내용이나 새로추가된 리팩토링은 마틴파울러의 리팩토링 홈페이지(http://www.refactoring.com/catalog/index.html)에 가보면 잘 나와 있습니다.
'리팩토링' 카테고리의 다른 글
리팩토링 : Change Value to Reference (0) 2012.12.01 리팩토링 : Change Bidirectional Association to Unidirectional (0) 2012.11.30 리팩토링 : Change Unidirectional Association to Bidirectional (0) 2012.11.29 리팩토링 : Change Reference to Value (0) 2012.11.28 리팩토링 : Add Parameter (0) 2012.11.27 댓글