Wednesday, December 27, 2006

 

GoF의 Design Patterns

Object Oriented Software Design에 종사하는 사람이면 반드시 한번은 읽어야 할 고전이다.

이 책은 Object Oriented Design에 대한 혁신적인 디자인 방법론이나, 새로운 기법들을 논하지

않는다. 그보다는 개발자들이 축적한 경험에 기반하고 있다. 저자들의 주장은 간단하다.

소프트웨어 설계를 하다 보면, 같은 문제가 수없이 반복되는 것을 관찰할 수 있는데, 이것들에 대한

논의나 기록이 부족했다는 것이다. 같은 문제가 계속해서 반복된다면 표준화된 해결책을 만들어

놓고, 그 문제가 발생할 때마다 표준화된 해결책을 쓰면 소프트웨어 설계가 훨씬 쉬울 것이라는

것이다. 마치 건축을 할 때 건축 자재들을 정해진 규칙에 따라 조립하듯이, 소프트웨어도 이러한

표준화된 방법론을 이용하여 레고 블록 쌓듯이 조립하자는 뜻이다.

저자들은 이 표준화된 방법을 Design Pattern이라고 이름하였으며, 가장 흔하게 부딪치는 문제에

대한 Design Pattern들을 체계적으로 정리하여 책의 후반부에 수록하여 놓았다. (이 책의 가장 큰

강점이다).

Design Pattern은 3가지 요소로 정의할 수 있다. 일단 그것이 어떤 문제에 사용되는 것인가

를 기술해야 하므로 "Problem"이 첫번째 요소이다. 그리고 그 문제에 대한 해결책 "Solution"이 두

번째이다. 마지막 요소는 그 문제에 어떤 해결책을 적용했을 때 나타나는 결과, "Consequence" 이

다. 같은 문제에 대해 여러가지 해결책이 존재할 수 있으므로, 결과들을 비교하여 어떤 솔루션을

선택하는 것이 좋을지 결정해야 한다.

이 책은 크게 2개의 부분으로 나누어져 있다. 첫번째 파트 (Chapter 1/2)는 Design Pattern이란

무엇이고, 그것들을 어떻게 사용해야 하는가를 설명한다. 그리고 두번째 파트 (Chapter 3/4/5)는

광범위하게 사용되는 Design Pattern들을 Creational, Structural, Behavioural이라는 기준으로

분류하여 소개해 놓았다.

소프트웨어 설계 전문가를 꿈꾸는 엔지니어라면 반드시 한 번 읽어보아야 할 책이다.


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?