[DesignPattern] 디자인 패턴

2025. 1. 8. 11:50·Design Pattern

1. 개요

디자인 패턴에 대해 알아보고 코딩시 어떻게 활용할 수 있는지 정리한다.

 

2. 디자인 패턴

디자인 패턴은 개발자들이 비슷한 문제들을 반복적으로 구현을 하면서 이를 간단히 정리해 놓은 코드 패턴이다.

 

GoF(Gang of Four) Design Patterns 책에서는 디자인 패턴을 3가지로 분류한다.

  1. 생성 패턴 (Creational Patterns)
  2. 구조 패턴 (Structural Patterns)
  3. 행동 패턴 (Behavioral Patterns)

 

1. 생성패턴 (Creational Patterns)

객체 생성과 관련된 패턴이다.

  • 팩토리 메서드 (Factory Method)
  • 추상 팩토리 (Abstract Factory)
  • 빌더 (Builder)
  • 프로토 타입 (Prototype)
  • 싱글턴 (Singleton) : 프로그램에서 객체를 하나만 생성한다.

 

2. 구조 패턴 (Structural Patterns)

클래스와 객체 간의 관계를 정의하여, 더 큰 구조를 형성해 나간다.

  • 어댑터 (Adapter)
  • 브리지 (Bridge)
  • 복합체 (Composite)
  • 데코레이터 (Decorator)
  • 퍼사드 (Facade)
  • 플라이웨이트 (Flyweight)
  • 프록시 (Proxy)

 

3. 행동 패턴 (Behavioral Patterns)

객체 간의 상호작용과 책임 분산에 중점을 두어, 객체 간의 커뮤니케이션을 설계한다.

  • 책임 연쇄 (Chain of Responsibility)
  • 커맨드 (Command)
  • 반복자 (Iterator)
  • 중재자 (Mediator)
  • 옵저버 (bserver)
  • 상태 (State)
  • 전략 (Strategy)
  • 템플릿 메서드 (Template Method)
  • 비지터 (Visitor)

 

3. 디자인 패턴 공부

디자인 패턴을 효율적으로 살펴보기 위해 내가 알아야 할 점들은 무엇이 있는지 정리해보자.

  1. 해당 디자인 패턴은 어느 상황에 사용되는가?
    • 디자인 패턴이 사용되는 상황을 정리해본다.
    • 그리고 그 상황을 마주쳤을 때 해당 디자인 패턴을 생각할 수 있도록 훈련한다.
  2. 디자인 패턴을 떠올렸다면 고려한다.
    • 해당 상황에서 정말 적용해도 되는지 디자인 패턴의 장점과 단점을 생각하며 고려한다.
  3. 디자인 패턴을 적용한다.
    • 기본 클래스 다이어그램 틀과 사용된 소스코드를 참고하여 전체적인 흐름을 파악하고 적용한다.

 

4. 정리

  • 디자인 패턴은 어떤 상황을 해결하기 위해 개발자들이 구현해 놓은 검증된 코드 패턴이다.
  • 디자인 패턴은 생성 패턴, 구조 패턴, 행동 패턴 3가지로 나뉜다.
  • 디자인 패턴을 내 코드에 녹여내려면 아래의 내용을 정리한다.
    • 디자인 패턴이 사용되는 상황 (떠올리기)
    • 디자인 패턴의 장점과 단점 (고려하기)
    • 디자인 패턴의 클래스 다이어그램과 소스코드 정리 (참고하기) 

'Design Pattern' 카테고리의 다른 글

[Design Pattern] 전략 패턴  (0) 2025.04.02
[Design Pattern] 디자인 패턴  (0) 2025.04.01
[DesignPattern] 모던 객체지향 설계 - 활용 예시  (0) 2025.04.01
[DesignPattern] 모던 객체지향 설계 - 추가 원칙  (0) 2025.03.31
[DesignPattern] 모던 객체지향 설계 - 객체지향의 기본 원칙  (0) 2025.03.31
'Design Pattern' 카테고리의 다른 글
  • [Design Pattern] 디자인 패턴
  • [DesignPattern] 모던 객체지향 설계 - 활용 예시
  • [DesignPattern] 모던 객체지향 설계 - 추가 원칙
  • [DesignPattern] 모던 객체지향 설계 - 객체지향의 기본 원칙
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    게임동기화
    액터
    하드 레퍼런싱
    component
    GameplayEffect
    Animation
    KPT회고
    actor
    사전캠프
    basic
    알고리즘
    디자인 패턴
    본캠프
    Design Pattern
    unrealengine
    DesignPattern
    gas
    레벨디자인
    Til
    Algorithm
    tsoftobjectptr
    내일배움캠프
    디자인패턴
    assetmanager
    unreal
    AI
    Implement
    퀘스트
    c++
    소프트 레퍼런신
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[DesignPattern] 디자인 패턴
상단으로

티스토리툴바