2005년 2월 28일 월요일

The History of Design Patterns

The History of Design Patterns

소프트웨어에 대한 디자인 패턴의 아이디어는 건축 분야에서 나왔다. 1977년과 1979년에 건축가인 크리스토퍼 알렉산더(Christopher Alexander)는 “A Pattern Language:Towns, Buildings, Construction”라는 제목의 책과 “The Timeless Way of Building”이라는 제목의 책 두 권을 발표했다.  이 두 권의 책이 담고 있는 기본 아이디어는 건축물의 설계에 빈번하게 발생하는 동일 설계 내용이 있으며 따라서, 이런 것들을 하나의 패턴으로 보고 다른 건축물 설계에 재사용하는 것이 여러 가지 면에서 이득을 가져 다 준다는 것이다.  두 권의 책이 담고 있는 이런 기본 아이디어는 건축 영역을 벗어난 소프트웨어와  같은 다른 영역에서도 적용할 수 있었다. 

1987년 워드 커닝험(Ward Cunningham)과 켄트 벡(Kent Beck)은 알렉산더의 아이디어를 사용해서 사용자 인터페이스(User interface)에 대한 다섯 가지의 패턴을 만들었다. 그리고 이 내용은 “Using Pattern Languages for Object-Oriented Programs”라는 제목으로 정리되어 객체 지향에 관한 세계적인 컨퍼런스(conference)인 OOPSLA-87(Object-Oriented Programming, Systems, Languages & Applications .. 87)에 논문으로 발표되어 디자인 패턴에 대해서 학계에 공식적으로 알리는 계기가 되었다. 

1990년대 초에는 에릭 감마(Erich Gamma), 리차드 헬름(Richard Helm), 존 블리자이드(John Vlissides), 랄프 존슨(Ralph Johnson)이 90년대 가장 영향을 주었던 컴퓨터 책의 한 가지인 “Design Patterns: Elements of Reusable Object-Oriented Software”이란 책 제작을 시작 했다. 이 책은 1994년에 발표되어 디자인 패턴에 대한 아이디어를 널리 알리는 계기를 만들었으며, 이 책은 책의 제목이 긴 이유로 인해서 'GoF(Gang of Four) book'라는 별칭으로 불리고 있다. 

Defining Desing Patterns

  • 디자인 패턴은 개개의 클래스, 인스턴스 , 컴포넌트들의 상위 단계인 추상 개념을 확인하고 특정 짓는다.(Gamma, et al., 1993)
  • 디자인 패턴은 소프트웨어 개발의 범위에서 어떤 일을 어떻게 완수할 수 있는 가에 대한 규칙들로 이루어 진다.(Pree, 1994)
  • 디자인 패턴은 반복되는 구조의 디자인 주제의 재사용성에 좀더 초점을 둔다.(Coplien & Schmidt, 1995)

Definition: 자주 발생하는 문제들에 대한 "재사용 가능한 해결책"이다.

댓글 없음:

댓글 쓰기