패턴의 역사
패턴(pattern)은 프랑스어 낱말 patron에서 온 것으로, 되풀이되는 사건이나 물체의 형태를 가리킵니다. 그러면 누가 디자인 패턴을 발명했을까요? 좋지만 정확하지 않은 질문입니다. 디자인 패턴은 모호하고 복잡한 개념이 아니라 객체 지향 설계의 일반적인 문제들에 대한 일반적인 해결책입니다. 같은 해결책이 다양한 프로젝트에서 계속해서 반복적으로 사용되면, 결국 누군가 그것에 이름을 붙여 개념을 자세히 설명하게 됩니다. 기본적으로 디자인 패턴은 이렇게 발견됩니다.
패턴이라는 개념은 『패턴 랭귀지: 도시 건축 시공』 (크리스토퍼 알렉산더)에서 처음으로 설명되었습니다. 이 책은 도시 환경을 설계하기 위한 '언어'를 설명하며, 이 언어의 단위가 패턴입니다. 패턴으로 창문이 얼마나 높아야 하는지, 건물이 몇 층이어야 하는지, 근처 녹지의 면적이 얼마나 넓어야 되는지 등을 설명할 수 있습니다.
이 개념은 에릭 감마, 존 블리시디스, 랄프 존슨, 리처드 헬름이라는 4명의 작가에 의해 정리되었습니다. 1994년, 이들은 디자인 패턴:재사용성을 지닌 객체지향 소프트웨어의 핵심 요소라는 책을 발간하였고, 거기서 디자인 패턴의 개념을 프로그래밍에 적용하였습니다. 이 책은 다양한 객체 지향 디자인 관련 문제를 해결하는 23가지 패턴을 소개했으며 금방 베스트 셀러가 되었습니다. 너무 긴 제목 때문에 사람들은 이 책을 '4인방(Gang of Four)이 쓴 책'이라고 부르기 시작했으며 곧 간단히 'GoF 책'으로 줄여 부르게 되었습니다.
그 이후로 수많은 다른 객체 지향 패턴이 발견되었습니다. '패턴 접근법'이 다른 프로그래밍 분야에서도 인기를 얻으면서 이제는 객체 지향 디자인 외부에도 많은 패턴이 존재하게 되었습니다.