'Design Pattern'에 해당되는 글 1건

  1. 2007.11.17 Design Patterns: Elements of Reusable Object-Oriented Software

사용자 삽입 이미지

일년 쯤 전인가...
'전병선'이라는 분이 쓴 책에서 프로그램을 만드는 일을
집짓는 일에 비유한 것이 생각난다.
딱 적당한 비유가 아닌가 한다.

좋은 집을 짓는데 필요한 능력은 연장을 다루는 것 그 이상이다.
망치와 못을 다룰 줄 안다면 집에서 기르는 개를 키울 개집이나
간단한 책꽃이 정도는 만들 수 있을 것이다.
하지만 그 사람에게 커다란 아파트를 짓게 한다면 어떨까?

지을 수도 없겠지만 혹여 짓는다고 해도 금새 폭삭 무너질 것이다.
그 사람에겐 전체를 볼 줄 아는 안목과 ,
부분을 조화롭게 통합하는 능력이 전혀 없기 때문이다.

프로그램을 만드는 것도 이와 같지 않을까?
어찌어찌하여 언어만 쓸 줄 안다고 해서
좋은 프로그램을 짤 수 있는 것이 아니다.
수백줄 정도의 프로그램은 그럭저럭 짠다고 쳐도
그 이상의 커다란 시스템을 제대로 짤 수 있을까?
짤 수는 있을 것이다. 허접하게...

적어도 수십개 정도는 되는 구성 요소들이
서로 서로 거미줄 처럼 얽혀 있을 것이다.
거미줄을 건드리면 진동이 퍼져나가듯
한 부분을 고치면 다른 부분 들도 몽땅 뜯어 고쳐야 한다.
결국 거미집을 수리하는 것은 불가능 할 것이다.
다 뜯어내고 아예 새로 짓는 수 밖에..

Design Patterns...
말그대로 대표적인 디자인 패턴들에 대해 설명하고 있는 책이다.
이 패턴들의 목적은?
책의 부제가 말해주듯 'Reuse'이다.

패턴이 reusable하다는 얘기는 각각의 패턴을 이용하여 구현된
sub-system도 reusable하다는 얘기다.
거미줄 처럼 유기적으로 잘 작동하면서도
한편으로는 reusable한 sub-system을 만든다는 얘기다.

또한 이렇게 구현된 sub-system들을 조화롭게 통합하는 것도
패턴을 이용하면 가능한 경우가 있다.
이 책의 관점에서 보자면
system= reusable patterns of reusable patterns
라고 할 수 있을 것이다.

혹자 들은 어떻게 말할지 모르겠으나,
내가 보기엔 단순 코더가 아닌 진정한 architect가 되고자 한다면
이 책은 필독서가 아닌가 싶다.
물론 이 책에서 소개하는 패턴들이 만병통치약은 아니지만
많은 경우에 설계상의 문제를 해결하는데 도움이 될것이다.
또 독자의 안목을 한 단계 끌어 올리는 데도...

영어 원서라서 읽는데 꽤 오랜 시간이 걸렸다.
그것도 짬짬이 찔끔찔끔 읽었으니...
하지만 충분히 그 정도의 시간을 투자할 만한 가치가 있는 책이다.

한마디로 객체지향 언어를 능숙히 익힌 모든 이들에게 강추!!! 라는 거다.
 

Posted by OnTheWheel

댓글을 달아 주세요