lee-seungjae.github.io

디자인패턴과 주화입마

2006-04-21

저는 디자인패턴을 실력에 비해서 좀 일찍 접한 편입니다. 학부 2학년 때였고, 만들어 본 가장 큰 프로그램이 기껏해야 이삼천 줄 정도 되는 거였지요. OOP에 대해서도 깊게 이해하지 못한 상태였구요. 그런 상태에서 디자인패턴을 잘못 배워 주화입마에 빠져 버렸습니다.

OOP를 막 접한 상태에서 패턴 책을 보면 감동의 연속이더군요. 하지만 그 감동은 별로 쓸모가 없었습니다. 거기에 빠져서 패턴을 접한 이후 몇 개의 프로젝트에서 디자인을 계속 말아먹었거든요. 시간이 지난 후에 그때 왜 디자인을 실패했는지 생각해 보니, 내공이 부족한 상태에서 기술만을 익혀 사용하려고 했기 때문이었습니다. 좋은 디자인을 하기 위해 이리저리 고민하다 보니 패턴의 사용처가 드러나는 것이 아니라, 갓 배운 패턴을 당장 사용해보고 싶어서 디자인을 결정하는 상황이었죠.

패턴을 읽고, 구조를 이해하고, 그 의도를 파악하고 나면 다시한번 음미한 뒤 머릿속에서 지워버려야 합니다. 자신의 디자인 속에서 패턴이 자연스럽게 창발하도록 해야지, 패턴을 의도적으로 구사하려고 하면 안됩니다. 의식적으로 패턴을 머리속에서 떠올리지 않더라도, 문제를 바라보면서 이리저리 디자인을 하다 보면 그 안에서 마음속 뒤켠 어딘가에 숨어있던 패턴이 드러날 것입니다.

드러나지 않는다면 아직 내공이 부족한 것이겠죠 하하 ...

패턴을 배우기 이전에, '중복을 제거한다', '자주 변하는 곳과 그렇지 않은 곳을 분리한다', '모듈간의 결합도를 낮춘다' 등의 OOP 기본 원칙과 의도를 익히는 것이 앞서야 합니다. 그런 의미에서 디자인패턴보다는 리팩토링을 먼저 배우는 것이 낫겠지요.

목록으로
@0xcafea1fa RSS