디자인 패턴

GOF 디자인 패턴을 이해하기 앞서 일반적인 디자인 패턴을 알아보겠다.

디자인 패턴은 소프트웨어 공학에서 특정 문제해결을 위해 정의된 정형화된 관례나 방법을 의미한다.

예를 들어 클라이언트의 요청마다 서버의 로직을 담당하는 객체가 생성된다고 해보자

요청이 많아질 수록 생성되는 객체도 기하급수적으로 늘어나게 된다.

이렇게 되면 객체를 수용할 메모리가 한계에 다다라 결국 과부하가 발생하게 된다.

그런데 그러면 모든 요청을 하나의 객체가 처리하면 되는거 아닌가?

맞다.

그리고 방금 생각한 그것이 디자인패턴 중에서도 GOF 디자인 패턴 중에서도 생성패턴의 싱글톤 패턴이다.

다시, 디자인 패턴은 소프트웨어 공학에서 특정 문제상황을 해결할 수 있는 테크닉을 재사용함에 있어서 상호간 커뮤니케이션 비용을 줄이기 위해서 사용된다.

그리고 디자인 패턴에 속하는 구체화된 패턴들은 문제상황에서 코드의 재사용성, 효율성, 가독성을 높여주는 기능을 한다.

GOF 디자인 패턴

여기서 GOF라는 수식어는 단순하게 Gang of Four 의 약자로
GOF 디자인 패턴을 만든 4명의 개발자를 의미한다.
(본인들이 지은 이름이다 한글로 번역하면 '사인방', 귀여우신 분들이다)

이 사인방은 자신들의 개발 방식과 노하우를 축적한 것을 패턴으로 정립해서 1995년 제시하였는데 이것이 GOF 디자인 패턴이다.

개괄적인 구조는 아래와 같다.

이러한 GOF 디자인 패턴은 보다시피 생성, 구조, 행위 패턴으로 구분되어 있다.

생성패턴

의미

추상화를 통해 인스턴스를 생성하는 방법에 대한 패턴들을 포함한다.

패턴

  1. 싱글톤
  2. 팩토리
  3. 추상 팩토리
  4. 빌더
  5. 프로토타입

구조패턴

의미

더 큰 구조를 위해 클래스와 객체를 합성하는 방법에 대한 패턴들을 포함한다.

패턴

  1. 어댑터
  2. 합성
  3. 프록시
  4. 플라이웨이트
  5. 파시드
  6. 브릿지
  7. 데코레이터

행동패턴

의미

객체들 간의 교류, 커뮤니케이션 방법에 대한 패턴들을 포함한다.

패턴

  1. 템플릿 메소드
  2. 중재자
  3. 책임연쇄
  4. 옵저버
  5. 전략
  6. 커맨드
  7. 상태
  8. 방문자
  9. 반복자
  10. 해석자
  11. 기념품
profile
세상을 바꾸는 한줄의 코드를 작성하는 개발자

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN