DesignPatternSmalltalkCompanion:Head01
서론
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gamma, 1995)가 집필한 Design Patterns: Elements of Reusable Object-Oriented Software 의 자매편인 The Design Patterns Smalltalk Companion 을 읽게 된 것을 환영한다. 디자인 패턴 편은 디자인 패턴을 처음으로 다룬 서적은 아니었지만 소프트웨어 공학분야에 작은 혁명을 불러왔다. 이제 설계자들은 디자인 패턴의 언어로 대화하며 디자인 패턴과 관련된 워크숍, 출판물, 웹사이트 수도 그간 급증해왔다. 현재 디자인 패턴은 객체지향 프로그래밍 연구 및 개발dml 주요 주제일 뿐만 아니라 새로이 디자인 패턴 공동체도 생겨나고 있다.
디자인 패턴 편에서는 객체지향 프로그래밍 언어에서 실행되는 애플리케이션에 사용되는 23 가지의 디자인 패턴을 설명하고 있다. 물론 객체지향 프로그래밍 설계자가 필요로 하는 디자인 지식을 23가지 패턴으로 모두 설명할 수는 없을 것이다. 하지만 "Gang of Four(GoF)" (Gamma et al.)에 소개된 패턴들은 디자인 패턴을 시작하는데 튼튼한 기초가 된다. 이러한 패턴들은 Smalltalk 개발환경에서 발견된 기반 클래스 라이브러리에 대한 설계수준의 내용이다. 패턴들이 모든 문제를 해결할 순 없지만, 실생활에서 나타나는 다양한 디자인 문제에 대한 해법(solution)으로 통합할 수 있는 유용한 구조를 찾고, 일반적으로 디자인 패턴을 학습하는 경우에 대한 기반을 제공한다. 이는 디자인 전문가 수준의 지식을 포함하고 있으며, 고급스러우면서 관리가 용이하고 확장이 가능한 객체지향 프로그램을 만드는데 필요한 기반을 제공한다.
Smalltalk Companion 에서는 이것을 패턴의 "base library"에 추가하지 않았다; 오히려 스몰토크 설계자와 프로그래머를 위해 제시하였고, 때로는 특별한 관점이 필요한 곳에서 패턴을 해석하고 확대시켰다. 우리의 목표는 디자인 패턴 책을 대체하는 것이 아니다; 본 저서는 [디자인 패턴]을 대신해 읽기보다는 함께 읽을 것을 권한다. GoF에서 이미 상세히 다룬 정보는 포함시키지 않고자 했다. 그 대신 내용을 자주 참조하고 있으니 여러분도 그러길 권한다.