본문 바로가기
UnrealEngine5/C++

UE5에서의 UInterface, IInterface 재정리

by 개발의 묘미(GaeMyo) 2025. 8. 25.
SMALL

인터페이스의 장점.

 

다형성, 리플렉션/RTTI(Run-Time Type Information), BP와의 유연한 연동.

다중 상속 구조 가능.

여러 클래스를 대상으로 같은 인터페이스를 씌워 각각 다르게 구현할 수 있음.

 

 

BP와의 유연한 통합을 위한 사용 방법으로는

BlueprintImplementableEvent, BlueprintNativeEvent 두 가지가 있음.

 

여기서 IInterface::Execute_AnyFunc으로 호출하는 경우에는

블루프린트에서 해당 함수가 구현되어 있으면

C++쪽 기본 구현은 무시되고, BP쪽 오버라이드가 우선됨.

 

하지만 BP에서의 구현이 없다면 C++ 기본 구현이 실행됨.

C++ 기본 구현이 존재하는 경우로는 위에서 말한 BlueprintNativeEvent의 경우가 있는데

만약 C++로 C++ 구현 부분만 호출하고 싶다면 _Implementation를 호출하면 됨.

 

 

GPT한테 물어보면 아무리 물어봐도 이 정도 까지만 얘기해 주지만 내 생각은 약간 다름.

 

인터페이스를 사용함으로써 생기는 추가 이점은

타입 의존성을 줄일 수 있음.

호출자 쪽에서 필요한 함수를 갖고 있는 타입 클래스를 Include할 필요 없이 인터페이스만 Include해도 됨.

런타임 성능 향상은 딱히 없지만 컴파일 시간/결합도 측면에서 간접적인 이득이 약간 발생함.

또한 결합도 감소의 이점도 존재함.

교체 가능한 계약으로 설계가 유연해지는 장점.

 

사실 아주 큰 차이는 없긴 하지만 이러한 추가 장점들을 보유하고 있음.

 

반응형
SMALL

'UnrealEngine5 > C++' 카테고리의 다른 글

UE C++ 매크로들 재정리  (0) 2025.09.08
UE TMap<> 재정리  (0) 2025.09.07
UE TArray<> 재정리 (5.6.1 기준)  (2) 2025.09.07
Replicated SubObject With Iris/Replication Graph 재정리 (UE5.7 기준)  (0) 2025.09.06
TWeakPtr<T> 재정리  (0) 2025.08.24
TUniquePtr 재정리  (0) 2025.08.24
TWeakObjectPtr<T> 재정리  (0) 2025.08.24
TObjectPtr<T> 재정리  (0) 2025.08.24