본문 바로가기
개발용어

디자인패턴이란, GoF디자인패턴이란, 디자인패턴의유래, 패턴을쓰는이유,

by devscb 2022. 3. 29.
반응형

 

디자인패턴이란, GoF디자인패턴이란, 디자인패턴의유래, 패턴을쓰는이유,

 


 

디자인패턴이란, 디자인 패턴의 유래?


건축가인 크리스토퍼 알렉산더(Christopher Alexander) 가 건물및 도시 설계를 개선하기 위해
반복되는 행태와 환경을 패턴으로 정리해본것이 디자인패턴의 시초입니다.
전문가들은 종종 새롭지만 비슷한 문제를 맞닥뜨리는데,
이전에 사용했었던 경험들을 토대로 문제를 풀고, 이전에 문제를 풀었던 방식을 재사용합니다.
다양한 분야의 전문가들은 반복되는 방법을 패턴으로 정리하였습니다.
소프트웨어 개발에서 또한 이러한 방법론이 연구되어 디자인패턴이 만들어졌습니다.

소프트웨어 디자인패턴의 역사
- 1977년: The architect Christopher Alexander, A Pattern Language: Towns, Buildings, Construction
- 1987년: Kent Beck and Ward Cunningham, OOPSLA Paper Adopted Alexander's pattern idea for Smalltalk GUI design
- 1991년: Erich Gamma, Ph. D. thesis
- 1995년: Gamma, Helm, Johnson, Vlissides (Gang of Four) Design Patterns: Elements of Reusable Object-Oriented Software
- 1994년~현재: Pattern Languages of Programs (PLoP) Conferences and books

 

 

패턴을 쓰는이유

- 검증된 솔루션을 사용하면 안정적입니다.
- 패턴에 대한 지식은 더욱 생산적으로 일할수 있게 만들고, 재사용가능하고 유연한 설계가 가능합니다.
- 개발자들끼리 공통적으로 통용되는 단어로 쉽게 소통할 수 있습니다.
- 누군가가 이미 당신이 고민하고 있는 문제를 과거에 해결했습니다.
시간내서 고민할 시간을 없앨수 있습니다.
 

 

 

 

디자인 패턴의 3가지 룰

 

- Context(맥락,컨텍스트) : 패턴이 적용되는 상황입니다. 반복되는 상황이어야 합니다.
- Problem(프로블럼,문제) : 달성하려고 하는 목표와 제약을 의미합니다.
- Solution(솔루션, 해결책) : 목표와 제약을 파악하여 누구나 할 수 있는 일반적인 디자인입니다.

 

 

- 디자인패턴의 예제 : Iterator 패턴
Context : 오브젝트들의 Collection을 갖고 있다.
Problem : Collection의 구현체를 노출시키지 않고 오브젝트들을 순회할 수 있도록 한다.
Solution : 반복을 별도의 Class로 캡슐화





 

GoF 디자인패턴이란?


GoF 란 Gang of Four의 약자로,
소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해법과 작명법을 제안한 "Design Patterns" 책의 저자들입니다.
에릭 감마(Erich Gamma),
리처드 헬름(Richard Helm),
랄프 존슨(Ralph Johnson),
존 블리시데스(John Vlissides)가 바로 그들이며,
이들이 제안한 디자인 패턴이 GoF(Gang of Four)의 디자인 패턴입니다.
이분들은 여러 가지 문제에 대한 설계 사례를 분석하여 서로 비슷한 문제를 해결하기 위한 설계들을 분류하고,
각 문제 유형별로 가장 적합한 설계를 일반화해 패턴으로 정립하였습니다.

GoF 디자인 패턴 분류

 



- Creational(생성) : 유연한 방식으로 객체를 생성하는 문제 해결, 동작/사용과 생성을 분리.
- Structural(구조) : 상속과 같은 Object-Oriented 구문 사용의 문제를 해결. 클래스와 객체를 구성.
- Behavioral(행동) : 클래스별로 책임을 부여하고, 커뮤니케이션 패턴과 관계에 대한 것을 제안.

 

총평


Design Pattern이 무엇인지 대략적으로 훑어보았는데, 드문드문 알던거를 총체적으로 쭈욱 정리해보려고 합니다.
코딩해오면서 자주 사용하던 패턴들도 있었지만, 거의 사용하지 않았던거 같은 패턴들도 있어 다시한번 공부해보고 정리해보려고 합니다.

 

 

 

디자인패턴이란, GoF디자인패턴이란, 디자인패턴의유래, 패턴을쓰는이유,

#design,#pattern,#디자인,#패턴,#디자인패턴,#designparttern 

 

https://devscb.com/post/87

 

What is a design pattern, what is a GoF design pattern, the origin of a design pattern, the reason for using a pattern,

What is a design pattern? What is a GoF design pattern? Origin of a design pattern? Why use a pattern? What is a design pattern? What is the origin of a design pattern?Architect Christopher Alexander

devscb.com

 

728x90
반응형

댓글