섹션 2.언리얼 C++ 설계 I - 인터페이스中
언리얼 C++ 인터페이스
인터페이스
- 객체가 반드시 구현해야 할 행동을 지정하는데 활용되는 타입
- 다형성의 구현:
인터페이스는 클래스가 특정한 동작을 수행하는 방법을 정의.
이를 구현하는 클래스들은 같은 인터페이스를 따르지만 각자의 방식으로 동작할 수 있다.
다양한 클래스들이 동일한 인터페이스를 구현함으로써, 동일한 메서드를 호출할 수 있으면서도 각자의 특징과 동작을 가질 수 있음. - 의존성이 분리된 설계:
인터페이스를 사용하면 클래스 간의 결합도를 낮추고 의존성을 분리할 수 있다.
인터페이스를 정의하여 클래스 간에 추상화 계층을 생성하면, 클래스들은 인터페이스에만 의존하게 된다.
이를 통해 클래스 간의 직접적인 의존성이 줄어들어 코드의 유연성과 재사용성을 향상시킬 수 있음.
인터페이스를 사용하면 한 클래스가 변경될 때 다른 클래스에 영향을 주지 않고도 쉽게 대체하거나 확장할 수 있다.
언리얼 C++ 인터페이스의 특징
- 인터페이스 생성 시 두개의 클래스가 생성
- U로 시작하는 타입 클래스 (클래스 타입 정보의 제공)
- I로 시작하는 인터페이스 클래스 (실질적인 설계 및 구현) - 객체를 설계할 때 I 인터페이스 클래스를 사용
- 실제 U타입 클래스에서 작업할 일은 없음
- 인터페이스에 관련된 구현은 I인터페이스에서 진행 - 추상타입으로만 선언 가능한 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 |