언리얼 인터페이스

2023. 5. 23. 19:35·[게임 개발] 언리얼엔진 공부/이득우의 언리얼 프로그래밍 Part.1

섹션 2.언리얼 C++ 설계 I - 인터페이스中

언리얼 C++ 인터페이스

 

인터페이스

  • 객체가 반드시 구현해야 할 행동을 지정하는데 활용되는 타입

  • 다형성의 구현:
    인터페이스는 클래스가 특정한 동작을 수행하는 방법을 정의.
    이를 구현하는 클래스들은 같은 인터페이스를 따르지만 각자의 방식으로 동작할 수 있다.
    다양한 클래스들이 동일한 인터페이스를 구현함으로써, 동일한 메서드를 호출할 수 있으면서도 각자의 특징과 동작을 가질 수 있음.

  • 의존성이 분리된 설계: 
    인터페이스를 사용하면 클래스 간의 결합도를 낮추고 의존성을 분리할 수 있다. 
    인터페이스를 정의하여 클래스 간에 추상화 계층을 생성하면, 클래스들은 인터페이스에만 의존하게 된다.
    이를 통해 클래스 간의 직접적인 의존성이 줄어들어 코드의 유연성과 재사용성을 향상시킬 수 있음.
    인터페이스를 사용하면 한 클래스가 변경될 때 다른 클래스에 영향을 주지 않고도 쉽게 대체하거나 확장할 수 있다.


언리얼 C++ 인터페이스의 특징

  1. 인터페이스 생성 시 두개의 클래스가 생성
    - U로 시작하는 타입 클래스 (클래스 타입 정보의 제공)
    - I로 시작하는 인터페이스 클래스 (실질적인 설계 및 구현)

  2. 객체를 설계할 때 I 인터페이스 클래스를 사용
    - 실제 U타입 클래스에서 작업할 일은 없음
    -  인터페이스에 관련된 구현은 I인터페이스에서 진행

  3. 추상타입으로만 선언 가능한 JAVA, C# 등 과는 다르게
    언리얼은 인터페이스에도 구현이 가능함.
    (언리얼은 C++ 클래스를 사용해 인터페이스를 구현하기 때문에
    추상타입으로 강제할 방법이 없음)


FORCEINLINE 매크로

 

인라인 이란?

  • FORCEINLINE 으로 매크로 사용

  • 컴파일러가 함수 호출 대신 함수의 내용을 호출

  • 프로그램 실행속도 향상

  • 함수 호출에 따른 오버헤드 감소
    (오버헤드란? 어떤 작업을 완료하기 위해 필요 이상으로 소모되는 자원, 시간)

  • 인라인화 된 코드의 크기가 커지면 캐시 효율성 떨어짐,
    인라인을 사용할 함수를 신중히 선택해야 함.
저작자표시 (새창열림)

'[게임 개발] 언리얼엔진 공부 > 이득우의 언리얼 프로그래밍 Part.1' 카테고리의 다른 글

델리게이트  (0) 2023.09.03
언리얼 열거형, 컴포지션  (0) 2023.05.24
언리얼 오브젝트 리플렉션  (0) 2023.05.19
TChar와 FString  (0) 2023.05.17
언리얼의 기본 타입을 따로 지정하는 이유  (0) 2023.05.17
'[게임 개발] 언리얼엔진 공부/이득우의 언리얼 프로그래밍 Part.1' 카테고리의 다른 글
  • 델리게이트
  • 언리얼 열거형, 컴포지션
  • 언리얼 오브젝트 리플렉션
  • TChar와 FString
람팜팜~
람팜팜~
:)
  • 람팜팜~
    RumPumPum
    람팜팜~
  • 전체
    오늘
    어제
    • 전체 (123)
      • 🎵 일상 (2)
      • JAVA (5)
        • 김영한의 자바 입문 (3)
      • JavaScript (12)
      • ---------------------------.. (0)
      • [게임 개발] 포트폴리오 (2)
        • RPG (1)
        • 슈터-플랫포머 (1)
      • [게임 개발] 개발 일지 (28)
        • RPG (25)
        • TopDownProject (3)
      • [게임 개발] 언리얼엔진 공부 (9)
        • 이득우의 언리얼 프로그래밍 Part.1 (6)
        • 이득우의 언리얼 프로그래밍 Part.2 (1)
        • 개인 메모 (2)
      • [게임 개발] 알고리즘 공부 (60)
        • 프로그래머스 (8)
        • 백준 (52)
        • 개인 메모 (0)
      • [게임 개발] CPP 공부 (2)
        • 이것이 C++ 이다 (1)
        • Effective C++ (0)
        • Effective Modern C++ (0)
        • 홍정모 그래픽스 새싹코스 (1)
      • [게임 개발] CS 공부 (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      참조자
      context switching
      누적합
      문자열
      그리디
      우선순위 큐
      역참조
      슬라이딩 윈도우
      데드락
      프로세스
      스레드
      메모리구조
      dp
      dfs
      브루트포스
      투포인터
      해시
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    람팜팜~
    언리얼 인터페이스
    상단으로

    티스토리툴바