[DesignPattern] 모던 객체지향 설계 - 추가 원칙

2025. 3. 31. 23:47·Design Pattern

1.  SOLID 원칙

  • SRP (단일 책임 원칙)
    • 각 클래스는 하나의 책임만 갖도록 하는 원칙
  • OCP (개방-폐쇄 원칙)
    • 어떠한 기능을 추가할 때 확장이 가능하지만 기존 코드가 수정되지 않아야 하는 원칙
  • LSP (리스코프 치환 원칙) : 자식 클래스가 부모 클래스의 역할로 대체될 때에도 정삭적으로 동작하여야 하는 원칙 
    • 자식 클래스를 구현할 때 부모클래스가 수정되면 안된다.
    • 부모 클래스가 수정되면 다른 자식 클래스의 기능이 변경된다.
  • ISP (인터페이스 분리 원칙)
    • 불필요한 메서드 의존성을 줄이기 위한 필요한 메서드만 의존할 수 있는 인터페이스를 설계한다.
    • 의존성이 높아지면 코드 수정이 힘들다.
  • DIP (의존성 역전 원칙)
    • 구체적인 클래스가 아닌 인터페이스나 추상 클래스에 의존하는 원칙 
    • ex) 오리1 = new 청둥 오리, new 고무 오리

 

2. RAII (Resource Acqusition is initialization)

  • 객체가 생성될 때 리소스를 획득하고 객체가 소멸될 때 자동으로 리소스를 반환한다.
  • ex) 스마트 포인터, std::lock_guard

 

3. 불변성 (Immutability)

  • 객체 상태를 가능한 불변으로 유지하여 코드의 안정성과 예측 가능성을 높인다.
  • ex) 변수나 함수에 const 키워드를 사용하여 불변으로 설정한다.

 

4. 템플릿과 제네릭 프로그래밍

  • 템플릿 기반 설계로 코드 재사용성 극대화
  • ex) TArray<int32>

 

5. 컴포지션 (Composition)

  • "has-a" 관계를 통해 객체를 구성하는 방식으로 설계한다.
  • 상속에 비해 코드 복잡성이 낮아 유지 보수가 편리하다.
  • 요즘에는 상속대신 클래스 안에 객체를 포함하여 기능을 추가한다. (컴포넌트들)

'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] 디자인 패턴  (1) 2025.01.08
'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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[DesignPattern] 모던 객체지향 설계 - 추가 원칙
상단으로

티스토리툴바