디자인 패턴이란?
디자인 패턴(Design Pattern)은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 일반적인 코드 구조 또는 설계 방법이다. 이는 개발자가 같은 문제를 반복적으로 해결하는 대신, 검증된 설계 방식을 활용하여 코드의 유지보수성과 확장성을 높이는 것을 목표로 한다.
디자인 패턴은 크게 세 가지 범주로 나눠진다.
생성 패턴은 객체 생성과 관련된 패턴으로, 객체의 생성 과정을 효율적으로 관리하고, 코드의 유연성을 높이는 것이 목적이다.
특징
객체 생성 과정을 캡슐화하여 클라이언트 코드와 객체 생성 코드를 분리.
코드의 유연성을 높여 객체 생성 방식을 변경하더라도 최소한의 수정만 필요.
객체 생성을 최적화하여 메모리 사용을 줄이고 성능을 개선할 수 있다.
대표적인 생성 패턴
싱글톤 패턴 (Singleton Pattern)
객체 풀링 패턴 (Object Pooling Pattern)
팩토리 패턴 (Factory Pattern)
빌더 패턴 (Builder Pattern)
구조 패턴은 객체와 클래스 간의 관계를 정의하여 코드의 구조를 효율적으로 조직하는 패턴이다.
특징
코드의 유연성을 높이고, 유지보수가 쉬운 구조를 제공.
객체 간의 결합도를 낮추어 독립적으로 수정 및 확장 가능.
클래스와 객체를 조합하여 새로운 기능을 쉽게 추가할 수 있도록 함.
대표적인 구조 패턴
어댑터 패턴 (Adapter Pattern)
브리지 패턴 (Bridge Pattern)
컴포지트 패턴 (Composite Pattern)
컴포넌트 패턴 (Component Pattern)
행동 패턴은 객체 간의 상호작용과 책임 분배를 관리하는 패턴이다.
특징
객체 간의 관계와 상호작용을 정의하여 코드의 유연성을 높임.
실행 흐름을 제어하거나 알고리즘을 캡슐화하여 코드 재사용성을 높임.
프로그램 실행 중 동적으로 행동을 변경할 수 있음.
대표적인 행동 패턴
옵저버 패턴 (Observer Pattern)
상태 패턴 (State Pattern)
전략 (Strategy Pattern)
커맨드 (Command Pattern)
디스패처 패턴 (Dispatcher Pattern)