디자인 패턴이란?
디자인 패턴은 모듈 간의 세분화된 역할이나 인터페이스 간의 구체적인 구현 방법을 설계할 때 참고할 수 있는 전형적인 해결 방식 또는 예제를 의미합니다. 디자인 패턴은 문제 및 배경, 실제 적용된 사례, 재사용이 가능한 샘플 코드 등으로 구성되어 있습니다.
디자인 패턴의 분류 (GoF 기준)
- 생성 패턴(Creational): 5개
- 구조 패턴(Structural): 7개
- 행위 패턴(Behavioral): 11개
디자인 패턴 사용의 장점
- 코드 구조 파악이 용이하다 (범용적인 스타일 제공).
- 객체지향 설계 및 구현의 생산성 향상에 적합하다.
- 검증된 구조의 재사용을 통해 개발 시간과 비용 절감.
- 개발자 간 원활한 의사소통이 가능하다.
- 설계 변경 요청에 대한 유연한 대응이 가능하다.
디자인 패턴 사용의 단점
- 초기 투자 비용이 다소 부담될 수 있다.
- 객체지향 기반 설계/구현 방식이기 때문에
다른 개발 방식과는 호환되지 않을 수 있음.
디자인 패턴 유형 정리
유형 | 패턴 | 설명 |
생성(Creational) | Abstract Factory | 구체 클래스에 의존하지 않고 관련 객체를 생성 |
Builder | 복잡한 객체를 단계별로 생성 | |
Factory Method | 객체 생성을 서브클래스에서 결정 | |
Prototype | 기존 객체를 복사해서 생성 | |
Singleton | 하나의 인스턴스만 생성되도록 제한 | |
구조(Structural) | Adapter | 호환되지 않는 인터페이스를 연결 |
Bridge | 구현과 추상화를 분리하여 독립적 변경 가능 | |
Composite | 트리 구조로 구성, 전체-부분 계층 표현 | |
Decorator | 기능을 동적으로 추가 | |
Facade | 복잡한 서브시스템에 단순 인터페이스 제공 | |
Flyweight | 공유 객체를 사용해 메모리 절약 | |
Proxy | 접근을 제어하는 대리 객체 사용 | |
행위(Behavioral) | Chain of Responsibility | 요청을 처리할 객체를 체인으로 연결 |
Command | 요청을 객체로 캡슐화, 실행 취소 등 지원 | |
Interpreter | 문법 규칙을 클래스로 표현 | |
Iterator | 집합 객체의 요소에 순차적으로 접근 | |
Mediator | 객체 간 복잡한 통신을 중재자 객체가 처리 | |
Memento | 객체 상태 저장/복원 (예: undo 기능) | |
Observer | 객체 상태 변화 시 다른 객체에 통보 | |
State | 상태에 따라 객체의 행동이 변경 | |
Strategy | 알고리즘을 캡슐화해 교체 가능하게 함 | |
Template Method | 상위 클래스에서 처리 틀 제공, 하위 클래스가 세부 구현 | |
Visitor | 구조는 변경하지 않고 기능만 분리하여 확장 |
'+' 카테고리의 다른 글
Nginx 정리 (Apache와의 차이) (3) | 2025.08.14 |
---|---|
토익스피킹 첫 시험 IH(Intermediate High) 후기, 공부 방법 (2) | 2025.07.25 |
[정처기] 애플리케이션 테스트 관리 - 테스트 커버리지 유형 정리 (0) | 2025.07.14 |
[정처기 실기] 완전수 / 완전수 기출 문제 (1) | 2025.07.03 |
소프트웨어 설계 (1) | 2025.02.06 |