디자인 패턴은 프로그램 설계 시 나타난 문제점을 객체 간의 상호 작용을 활용해 해결 가능한 '규약' 형태로 정의한 것입니다. 디자인 패턴은 라이브러리와 프레임워크 개발의 기본 원칙이 되며, 현재 다양한 라이브러리와 프레임워크들 역시 특정 디자인 패턴을 기반으로 만들어져 있습니다
디자인 패턴을 미리 학습해두면, 이를 기반으로 다양한 문제를 해결하는 데 영감을 받을 수 있고, 팀원들과 협업할 때 특정 문제가 발생했을 때 "이 부분은 전략 패턴을 사용하는 것이 좋겠어요"와 같이 빠르게 의사소통을 할 수 있습니다. 디자인 패턴의 이해와 활용은 팀원들 간 소통을 원활하게 하며, 효율적인 문제 해결 능력을 향상시킬 수 있습니다.
디자인 패턴은 크게 생성패턴, 구조패턴, 행동패턴 3가지로 나눠집니다.
생성패턴은 객체 생성 방법이 들어간 디자인패턴입니다.
싱글톤, 팩토리, 추상팩토리, 빌더, 프로토타입패턴이 있습니다.
구조패턴은 객체, 클래스 등으로 큰 구조를 만들 때 유연하고 효율적으로 만드는 방법이 들어간 디자인패턴입니다.
프록시, 어댑터, 브리지, 복합체, 데코레이터, 퍼사드, 플라이웨이트패턴이 있습니다.
객체나 클래스 간의 알고리즘, 책임 할당에 관한 디자인패턴입니다.
이터레이터, 옵저버, 전략, 책임연쇄, 커맨드, 중재자, 메멘토, 상태, 템플릿메서드, 비지터 패턴이 있습니다
이외에도 flux패턴, MVC패턴, MVVM패턴 등 수많은 디자인패턴이 있습니다.