소프트웨어 디자인 패턴

소프트웨어 디자인 패턴()은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.

역사 
건축적 개념으로서의 패턴은 크리스토퍼 알렉산더(1977/79)가 창안하였다. 1987년, 켄트 벡과 워드 커닝햄은 프로그래밍, 구체적으로는 패턴 언어에 패턴을 적용하는 개념에 관한 실험을 시작했으며 그 해 OOPSLA 콘퍼런스에서 자신들의 결과를 제시하였다. 그 뒤 여러 해에 걸쳐 벡과 커닝햄 등은 이 작업을 계속 진행하였다.

디자인 패턴은 이른바 사인방(Gang of Four)이 쓴 Design Patterns: Elements of Reusable Object-Oriented Software라는 책이 1994년 출판된 이후 인기를 끌었다.

분류 및 목록 
디자인 패턴은 원래 여러 분류로 그룹화되었다: 생성 패턴, 구조 패턴, 행동 패턴.

생성 패턴

구조 패턴

행동 패턴

동시성 패턴

같이 보기 
 디자인 패턴 (책)

각주 

 
소프트웨어 개발