티스토리 뷰

자격증/정보처리기사

GoF 디자인 패턴

키성열 2025. 4. 14. 21:14
반응형
GoF 디자인 패턴
GoF 디자인 패턴
― 객체지향 설계의 핵심 구조를 정리한 23가지 패턴
1. 정의

GoF 디자인 패턴은 1994년, 『Design Patterns: Elements of Reusable Object-Oriented Software』라는 책에서 네 명의 저자(Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 일명 Gang of Four)가 정리한 23가지 객체지향 설계 패턴을 말합니다.

이들은 다음과 같이 세 가지 범주로 나뉩니다:

범주설명
생성 패턴 (Creational)객체 생성 방식에 관한 패턴
구조 패턴 (Structural)클래스 및 객체 간 구성 방식에 관한 패턴
행위 패턴 (Behavioral)객체 간 상호작용과 책임 분배
2. 왜 필요한가?
이유설명
반복 문제 해결재사용 가능한 해법을 패턴화
결합도 감소유지보수와 테스트 용이성 확보
의사소통 도구“패턴명”으로 설계 구조를 명료하게 공유
확장성과 유연성 향상설계 구조의 변경에 강한 구조 제공
OOP 원칙 반영캡슐화, 상속, 다형성, 위임 등을 반영한 구조 설계
3. 디자인 패턴 목록
3.1 생성(Creational) 패턴
패턴목적설명
Singleton전역 인스턴스단 하나의 객체를 생성하고 어디서나 접근 가능
Factory Method생성 위임객체 생성을 서브클래스에 위임
Abstract Factory관련 객체군 생성관련 객체들을 일관된 방식으로 생성
Builder복합 객체 조립단계별로 복잡한 객체를 조립
Prototype복제 생성기존 객체를 복사하여 생성
3.2 구조(Structural) 패턴
패턴목적설명
Adapter호환성서로 다른 인터페이스를 연결
Bridge구현 분리추상화와 구현을 독립적으로 확장
Composite트리 구조단일 객체와 복합 객체를 동일하게 처리
Decorator기능 확장객체에 기능을 동적으로 추가
Facade간단화복잡한 하위 시스템을 간단한 인터페이스로 제공
Flyweight메모리 절약공유 가능한 객체를 통해 비용 절감
Proxy접근 제어대리 객체를 통해 접근을 제어
3.3 행위(Behavioral) 패턴
패턴목적설명
Observer변화 통지상태 변화 발생 시 등록된 객체에 자동 알림
Strategy행위 교체알고리즘을 동적으로 교체
Template Method공통 흐름 정의알고리즘의 골격을 상위 클래스에서 정의
Command요청 캡슐화요청을 객체로 만들고 큐잉 및 실행 관리
State상태 전환상태에 따른 행동 변화 구현
Mediator중재자객체 간 상호작용을 한 객체가 중재
Iterator순차 접근컬렉션 내부 구조에 상관없이 요소 접근
Memento상태 저장객체의 상태를 보존하고 복원
Visitor연산 분리데이터 구조와 연산을 분리
Chain of Responsibility요청 위임요청을 여러 객체가 처리하도록 연결
Interpreter언어 해석문법 표현을 해석하고 실행
4. 대표 패턴 예시 요약
패턴실생활 또는 코드 예시
SingletonDB 커넥션, 전역 설정
Factory Method동물 객체 생성 메서드
Adapter콘센트 변환기
Decorator커피에 시럽 추가
Observer구독 알림, 주식 알림 시스템
Strategy정렬 알고리즘 교체

 

5. SOLID 원칙과 패턴 연결
SOLID 원칙연계 패턴설명
SRPStrategy, Decorator단일 책임 원칙
OCPObserver, Factory확장에 열려 있고, 수정에는 닫힘
LSPTemplate, Composite리스코프 치환 원칙
ISPAdapter, Bridge인터페이스 분리
DIPFactory, Mediator상위 모듈이 하위 모듈에 의존하지 않음
6. 마무리 요약
분류패턴 수핵심 목적
생성 패턴5개객체 생성 방식 설계
구조 패턴7개클래스/객체 간 관계 설계
행위 패턴11개객체 간 책임 분배 및 상호작용
반응형

'자격증 > 정보처리기사' 카테고리의 다른 글

버블정렬(Bubble sort)  (0) 2025.04.14
MVC(Model–View–Controller)  (0) 2025.04.14
비기능적 요구  (0) 2025.04.14
유스케이스 연결선 4가지 완전 설명  (0) 2025.04.14
유스케이스란 무엇인가  (0) 2025.04.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함
반응형