개요

**<GoF(Gang of Four)의 디자인 패턴>**이라는 책에서 정리된 개념이다. 객체지향 프로그래밍 설계시 자주 발생하는 문제를 피하기 위해 사용되는 패턴이다.

문제를 회피함과 동시에 **설계적 관점에서의 좋은 코드(*)**를 만들기 위해 고안되었다.

이를 통해 얻어지는 효과는 다음과 같다.

  1. 개발자 간 원활한 의사소통
  2. 소프트웨어 구조 파악 용이
  3. 재사용성을 통한 개발 기간 단축
  4. 설계 변경 요청에 대한 유연한 대처

다만 모든 문제를 디자인 패턴을 통해 해결하려고 하는 패턴병에 걸리지는 말자.

디자인 패턴 <<< 코드베이스 간결성

GoF의 디자인패턴에서 정리된 디자인 패턴은 생성 패턴(5), 구조 패턴(7), 행동 패턴(11)의 23가지이다.

Untitled

<aside> 💡 우리가 흔히 ‘디자인 패턴’이라고 부르는 MVC, MVVM, MVP 등은 이에 포함되지 않는다. (물론 GoF 책에 MVC가 언급되긴 하더라. 다른 둘은 최근 개념이라 안 나옴)

MVC, MVVM 등도 의사소통을 위해 디자인 패턴이라고 얘기하면 되겠지만, GoF의 디자인 패턴들보다 더 큰 개념으로 느껴져서, 프로젝트 구조 설계 방법론 정도로 명명하는 게 어떨까 하는 주관적인 의견.

물론 일반적인 인식 하에서, 이들도 현 포스팅에서 함께 다루겠다.

</aside>