디자인 패턴 ( Design Pattern )
프로그래밍 디자인 패턴은 소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 설계 솔루션이다.
쉽게 말해, 세상 수많은 프로그래머 선배분들이 각자의 프로그래밍을 해오다가 공통되게 나타난 비슷한 설계 구조들이 있는데, 그 중 이런 설계 구조에 이름을 붙여서 설계 원칙으로 만든 것을 디자인 패턴이라고 한다.
디자인 패턴은 게임 뿐만이 아니라, 다양한 모든 프로그래밍 분야에서 활용 가능한 가이드라인이다.
디자인 패턴은 구체적인 코드를 제공하지 않으며, 일반적인 구조와 상호작용을 설명하는 템플릿으로 이해할 수 있다.
핵심 개념
소프트웨어 개발에서 자주 반복되는 문제 상황에 대한 재사용 가능한 해결책을 정리해 둔 일종의 설계 템플릿이다.
- 문제 해결 경험의 집합 : 선배 개발자들이 실제 프로젝트에서 반복적으로 맞닥뜨린 문제와 해법을 정리한것
- 코드 자체가 아니라 설계 아이디어 : 구체적인 구현 코드라기보단, "이럴 땐 이렇게 구조를 잡으면 좋아"라는 지침
- 재사용성과 유지보수성 향상 : 중복을 줄이고 , 구조를 명확히 하며 , 팀 협업 시 공통 언어처럼 사용된다.
카테고리 ( GoF 의 23가지 디자인 패턴 기준 , Gang of Four )
1. 생성 ( Creational ) 패턴 - 객체를 만드는 방법을 다룬다.
- 예 : Singleton, Factory Method , Abstract Factory , Builder , Prototype
2. 구조 ( Structural ) 패턴 - 객체와 클래스를 조합해 더 큰 구조를 만드는 방법
- 예 : Adapter , Bridge , Composite , Decorator , Facade , Flyweight , Proxy
3. 행위 ( Behavioral ) 패턴 - 객체들 간의 상호작용 , 책임 분배에 초점
- 예 : Observer , Strategy , Command , State, Template Method , Iterator , Mediator , Visitor 등
예시
Singleton 패턴 : 프로그램에서 오직 하나의 인스턴스만 존재해야 할 때 사용 ( 예 : 게임 매니저 클래스 )
Observer 패턴 : 어떤 객체의 상태가 바뀌면 , 연결된 다른 객체들에게 자동으로 알림을 보내는 방식 ( 예 : UI 갱신 )
Strategy 패턴 : 알고리즘 ( 전략 ) 을 캡슐화해서 상황에 따라 교체 가능하게 만드는 방식 ( 예 : 몬스터 AI 행동 방식 변경 )
정리
소프트웨어 개발에서 자주 발생하는 문제 상황을 객체지향 원리에 따라 재사용 가능하게 정리해 둔 설계 아이디어 템플릿이다.
'⭐C Sharp > 13. 디자인 패턴' 카테고리의 다른 글
| Factory Method (0) | 2025.09.30 |
|---|---|
| 의존성 주입 ( Dependency Injection ) (0) | 2025.09.29 |
| Gang of Four (0) | 2025.09.29 |
| 게임에 자주 쓰이는 패턴 (0) | 2025.09.29 |
| SOLID 원칙 (0) | 2025.09.29 |