Loading AI tools
위키백과, 무료 백과사전
소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.
건축적 개념으로서의 패턴은 크리스토퍼 알렉산더(1977/79)가 창안하였다. 1987년, 켄트 벡과 워드 커닝햄은 프로그래밍, 구체적으로는 패턴 언어에 패턴을 적용하는 개념에 관한 실험을 시작했으며 그 해 OOPSLA 콘퍼런스에서 자신들의 결과를 제시하였다.[1][2] 그 뒤 여러 해에 걸쳐 벡과 커닝햄 등은 이 작업을 계속 진행하였다.
디자인 패턴은 이른바 사인방(Gang of Four)이 쓴 Design Patterns: Elements of Reusable Object-Oriented Software라는 책이 1994년 출판된 이후 인기를 끌었다.
디자인 패턴은 원래 여러 분류로 그룹화되었다: 생성 패턴, 구조 패턴, 행동 패턴.
이름 | 《디자인 패턴》에서 | 《코드 컴플리트》에서[3] | 기타 |
---|---|---|---|
어댑터, 래퍼(Wrapper), 변환기(Translator) | 예 | 예 | 빈칸 |
브리지 | 예 | 예 | 빈칸 |
컴포지트 | 예 | 예 | 빈칸 |
데코레이터 | 예 | 예 | 빈칸 |
확장 객체(Extension object) | 아니요 | 아니요 | Agile Software Development, Principles, Patterns, and Practices[5] |
퍼사드 | 예 | 예 | 빈칸 |
플라이웨이트 | 예 | 아니요 | 빈칸 |
프론트 컨트롤러 | 아니요 | 아니요 | |
마커 | 아니요 | 아니요 | 이펙티브 자바[8] |
모듈 | 아니요 | 아니요 | 빈칸 |
프록시 | 예 | 아니요 | 빈칸 |
트윈[9] | 아니요 | 아니요 | 빈칸 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.