Featured image of post 디자인 패턴이란?

디자인 패턴이란?

디자인 패턴에 대한 간단한 소개

# 서론

디자인 패턴을 몰라도 코딩은 할 수 있다. 하지만 트러블 슈팅에 있어 디자인 패턴도 고려해볼 수 있는가는 개발자의 유능함을 가를 수 있다고 생각한다.

# 디자인 패턴이란?

소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책이다. 알고리즘도 문제에 대한 해결책이지만, 명확한 일련의 절차를 정의하는 알고리즘과는 달리 패턴은 문제에 대한 결과와 기능은 제시하나 구현 단계 및 순서는 사용자가 결정하게 된다.

한마디로, 특정 문제를 해결하는 방식에 대한 이론이다.

# 패턴의 역사

패턴은 되풀이되는 사건이나 물체의 형태를 말한다. 일반적인 문제들에 대한 반복적으로 사용되는 해결책이 개념화된 것이 디자인 패턴이다.
패턴이라는 개념은 도시 건축에서 처음 등장한다. 상황에 따라 창문의 높이와, 건물의 층수 등을 설명할 때 제시되었으며 이는 곧 에릭 감마, 존 블리시디스, 랄프 존슨, 리처드 헬름의 4명의 작가에게 정리된다(Gang of Four > GoF)
23가지 패턴을 시작으로 현재는 수많은 패턴들이 발견되고 있다.

# 왜 패턴을 배워야 하는가

# 문제의 해결

지금까지 엔지니어들이 소프트웨어를 디자인하며 발생된 일반적인 문제들에 대해 시도하고 검증된 해결책의 모음집이다. 패턴들을 인지하고 있다면 문제의 해결뿐 아니라, 다양한 종류의 문제를 해결할 때에도 응용할 수 있을 것이다.

# 의사소통

디자인 패턴을 알고 있다면 개념들을 설명할 필요 없이 정의된 공통 언어를 통해 소통할 수 있다. 예를 들어, 싱글턴 패턴의 개념을 나열할 필요 없이 “싱글턴 패턴을 적용해보세요”라고 말할 수 있을 것이다.

# 패턴에 대한 비판

모든 상황에 패턴을 적용할 필요는 없다.

# 패턴의 분류

# 적용 범위에 따라

  • 하위 설계 패턴(이디엄) : 단일 프로그래밍 언어에만 적용할 수 있다.
  • 상위 설계 패턴(아키텍처 패턴) : 어플리케이션 전체의 구조를 설계하는 데 사용

# 의도와 목적에 따라

  • 생성 패턴 : 기존 코드의 재활용과 유연성을 증가시키는 객체 생성 메커니즘들을 제공
  • 구조 패턴 : 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명
  • 행동 패턴 : 객체 간의 효과적인 의사소통과 책임 할당을 처리
Licensed under CC BY-NC-SA 4.0
Hugo로 만듦
JimmyStack 테마 사용 중