디자인 패턴

디자인 패턴(Design pattern)은 건축학 및 컴퓨터 과학에서 사용되는 용어로, 설계 문제에 대한 해답을 문서화하기 위해 고안된 형식 방법이다. 이 방식은 건축가 크리스토퍼 알렉산더가 건축학 영역에서 고안한 것을 그 시초로 하며, 이후 컴퓨터 과학 등 여러 다른 분야에도 도입되었다.

각 영역에서 관련된 패턴들을 구조적으로 정리한 것을 패턴 언어라 부른다.

분야별 디자인 패턴 
 패턴 (건축학), 건축학에서 설계 아이디어(design idea)를 기술·전달하는 방법.
 소프트웨어 디자인 패턴, 소프트웨어 설계에서 공통적인 문제에 대한 표준적인 해법.
 아키텍처 패턴, 소프트웨어 공학에서 아키텍처 문제에 대한 표준적인 해법.
 인터랙션 디자인 패턴, 인터랙션 디자인(HCI)에서 쓰이는 패턴.
 교육학 패턴, 교육 현장의 좋은 사례에 대한 문서.

건축학에서의 디자인 패턴 
건축학에서의 디자인 패턴은 건축가 크리스토퍼 알렉산더가 제안한, 건축의 여러 기법을 틀로 고안한 아이디어이다. 이 디자인 패턴을 이용하는 방식은 건물 또는 도시의 설계를, 이전에 벌어졌던 몇가지의 단편적인 설계 결과들을 디자인 패턴으로 두고, 이를 묶어 조합하는 형태를 띠게 된다. 이들 패턴의 수집을, 각각의 패턴을 '패턴 언어'를 통해 기술하여 정리한 것이 크리스토퍼 알렉산더의 업적이라 할 수 있다.

패턴 언어를 통한 설계 방법은 건축 분야에서는 큰 반향을 불러일으키지는 못하나, 소프트웨어 과학 분야에서 여러 사람들이 이 아이디어에 감명을 받아 여러 연구를 진행하게 되며, 이 결과 가운데 소프트웨어 공학에서의 디자인 패턴이 제안되게 된다.

컴퓨터 과학에서의 디자인 패턴 

소프트웨어 개발 방법에서 사용되는 디자인 패턴은 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다. 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식을 설명해 준다.

이 용어를 소프트웨어 개발 영역에서 구체적으로 처음 제시한 곳은 GoF(Gang of Four)라 불리는 네명의 컴퓨터 과학 연구자들이 쓴 서적 'Design Patterns: Elements of Reusable Object-Oriented Software'(재이용 가능한 객체지향 소프트웨어의 요소 - 디자인 패턴)이다. GoF는 컴퓨터 소프트웨어 공학 분야의 연구자인 에릭 감마, 리차드 헬름, 랄프 존슨, 존 블리시디스의 네명을 지칭한다.

디자인 패턴과 패턴 학회 
GoF의 디자인 패턴과 그 멤버들 그리고 패턴에 관심을 갖는 학자, 엔지니어, 출판업자들이 모여서 PLoP라는 학회를 시작하게 된다.

같이 보기 
 안티패턴
 위키

참조 

건축설계
소프트웨어 디자인 패턴