**<GoF(Gang of Four)의 디자인 패턴>**이라는 책에서 정리된 개념이다. 객체지향 프로그래밍 설계시 자주 발생하는 문제를 피하기 위해 사용되는 패턴이다.
문제를 회피함과 동시에 **설계적 관점에서의 좋은 코드(*)**를 만들기 위해 고안되었다.
이를 통해 얻어지는 효과는 다음과 같다.
다만 모든 문제를 디자인 패턴을 통해 해결하려고 하는 패턴병에 걸리지는 말자.
디자인 패턴 <<< 코드베이스 간결성
GoF의 디자인패턴에서 정리된 디자인 패턴은 생성 패턴(5), 구조 패턴(7), 행동 패턴(11)의 23가지이다.
<aside> 💡 우리가 흔히 ‘디자인 패턴’이라고 부르는 MVC, MVVM, MVP 등은 이에 포함되지 않는다. (물론 GoF 책에 MVC가 언급되긴 하더라. 다른 둘은 최근 개념이라 안 나옴)
MVC, MVVM 등도 의사소통을 위해 디자인 패턴이라고 얘기하면 되겠지만, GoF의 디자인 패턴들보다 더 큰 개념으로 느껴져서, 프로젝트 구조 설계 방법론 정도로 명명하는 게 어떨까 하는 주관적인 의견.
물론 일반적인 인식 하에서, 이들도 현 포스팅에서 함께 다루겠다.
</aside>