디자인 패턴 ( Design Pattern )

2025. 9. 29. 21:36·⭐C Sharp/13. 디자인 패턴

디자인 패턴 ( 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
'⭐C Sharp/13. 디자인 패턴' 카테고리의 다른 글
  • 의존성 주입 ( Dependency Injection )
  • Gang of Four
  • 게임에 자주 쓰이는 패턴
  • SOLID 원칙
DevHoChan
DevHoChan
맨땅에서 시작하는 코딩 도전
  • DevHoChan
    Debugging Life
    DevHoChan
  • 전체
    오늘
    어제
    • 분류 전체보기 (374)
      • 🕹️Game Life (1)
      • 🖥️Computer Science (5)
      • 📖TIL (141)
        • 🔥Projects (16)
        • 💡DevTips (5)
        • 🤔발생한 문제와 해결 (5)
        • 🔮Unity Graphics (5)
        • 🎤Interview (3)
        • ✅CodingTest (9)
      • 🚀Game Release (4)
      • 🧊Unity Basic (58)
        • 📌용어 사전 (1)
        • 에디터&인터페이스 (3)
        • 디버그 (1)
        • 라이프사이클 (4)
        • 게임오브젝트 (4)
        • 프리팹 (1)
        • 오브젝트풀링 (4)
        • 애트리뷰트 (2)
        • 트랜스폼 (4)
        • 물리&충돌 (1)
        • 프레임&델타타임 (4)
        • 코루틴&이벤트 (7)
        • 수학&보정함수 (3)
        • 디자인패턴 (9)
        • UGUI (3)
        • 벡터 ( Vector ) (3)
        • 씬 ( Scene ) (2)
        • 데이터 관리 (2)
      • ⭐C Sharp (99)
        • 📌용어 사전 (1)
        • 📌문법 사전 (6)
        • 메모리 관리 (3)
        • 00. 문법 (17)
        • 01. 변수 (3)
        • 02. 자료형 (2)
        • 03. 연산자 (6)
        • 04. 조건문 (2)
        • 05. 반복문 (2)
        • 06. 배열 (3)
        • 07. 메서드(함수) (7)
        • 08. 열거형 (3)
        • 09. 구조체 (2)
        • 10. 참조 (2)
        • 11. 객체 지향 (11)
        • 12. 델리게이트 (3)
        • 13. 디자인 패턴 (7)
        • 14. LINQ (1)
        • 📂▼자료구조 (2)
        • 15-1. 제네릭 (3)
        • 15-2. 배열 (4)
        • 15-3. 리스트 (2)
        • 15-4. 스택과 큐 (2)
        • 15-5. 딕셔너리 해시테이블 (2)
        • 15-6. 트리와 그래프 (3)
      • 📊Algorithm (16)
        • BigO (2)
        • 정렬 (4)
        • 셔플 (2)
        • 탐색 (6)
        • 최적화 (1)
      • 📝Game Design (16)
      • 🤖​AI Tools (12)
        • AI 리뷰 분석 (6)
        • Player2 (0)
        • 3D 모델링 (1)
        • 2D 스프라이트 (0)
        • 이미지 (2)
        • 사운드 (1)
        • 동영상 (1)
        • 문서 (1)
      • 🌍Network (6)
      • 🌱Github (11)
        • 기본 개념 (7)
        • 명령어 (1)
        • 도구 활용 (1)
      • ⚙️Visual Studio (5)
        • 🔧설치 및 환경설정 (2)
        • ⌨️HotKey (1)
        • 🚨디버깅 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    til
    자료형
    unity
    메모리관리
    GitHub
    algorithm
    자료구조
    게임기획
    문법
    유니티
    gamedesign
    OOP
    csharp
    CodingTest
    객체지향
    부트캠프
    기획
    디자인패턴
    게임디자인
    c#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
DevHoChan
디자인 패턴 ( Design Pattern )
상단으로

티스토리툴바