| 디자인 패턴은 리팩토링이 겨냥한 과녁 중 하나다. - 마틴파울러 (Refactoring 저자) 어떤 경우에는 리팩토링의 결과가 디자인 패턴이 적용된 프로그램이다. 이건 너무나 당연하다. 디자인 패턴은 그동안 수많은 전문가들이 문제를 해결하기 위해서 사용해온 검증된 기법들이므로 디자인 패턴이라는게 나오려면, 그 전문가들 조차도 문제를 해결하기 위한 코드를 작성하고 그 후에 코드리뷰를 통하여 세련되고 깔끔한 멋진 코드로 바꾸면서 리팩토링을 해야만 하는 것이다.
또한, 디자인패턴에 억지로 끼워맞추듯이 코드를 작성하는 건 잘못된 것이다. 해결해야 할 문제영역이 명확하고 그 상황에 꼭 맞는 디자인패턴이 있다면, 사용하는 것이 정석이지만, 그렇지 않은 경우가 많기 때문에 대부분 리팩토링을 하며 자신만의 디자인 패턴을 만들어 가야한다. (프로그래머에게 가장 필요한 능력은 이런 문제해결능력이 아니던가? 남이 해결해놓은 것만 가져다 쓰다보면 분명 한계가 있다. 해결해야 하는 상황이 비슷한 경우라도 완전히 일치하지 않는 경우가 많기 때문에 억지로 끼워맞추게 되는 경우가 생긴다.) 디자인 패턴이란 굉장히 좋은 것 이지만 만능은 아니다. 오히려 리팩토링이 만능에 가깝지만, 리팩토링에는 엄청난 집중력과 시간이 필요하다.
덧.
세상에 상호보완적이지 않은 것이 있던가... -_-; |