리플렉션(Reflection) 시스템
지금까지 언리얼엔진에 대해서 많이 공부하면서 줄곧 언급되던 친구가 바로 리플렉션(Reflection) 시스템이다. 여러 곳에서 자주 언급되는 만큼 언리얼엔진에서 매우 강력하고 핵심적인 기능을 수행하는 시스템이다. 쉽게 설명하자면 런타임 중에 코드가 스스로를 돌아보고 자신의 구조를 파악한 뒤 제어할 수 있게 만드는 기능을 하는데 어떤 기능을 수행하는지 한번 알아보자
에디터 통합
언리얼 에디터의 디테일 패널에서 C++로 작성된 엑터나 컴포넌트의 변수들을 보고 값을 수정할 수 있게해준다 그동안 공부했던 UPROPERTY()와 같은 매크로로 지정된 변수를 읽어서 에디터 UI로 생성해 준다
블루프린트 연동
UFUNCTION() 매크로로 선언된 함수나 UPRORERTY()로 선언된 변수를 블루프린트에서 노드로 불러오거나 함수로 호출하는 등의 작업이 가능하게 해 준다.
가비지 컬렉션
언리얼엔진은 UObject 기반의 객체들을 자동으로 메모리 관리를 해주게 되어있는데 리플렉션 시스템은 UPROPERTY()로 선언된 객체 참조를 추적하여 사용 중인지 확인하고 사용하고 있지 않은 필요 없는 객체의 메모리를 자동으로 해제해 주는 역할을 한다.
동작 방식
그 외에도 직렬화나 네트워킹 등의 기능 또한 존재한다. 이러한 리플렉션 시스템은 언리얼의 UHT(Unreal Header Tool)을 이용하여 다음의 방식이 컴파일 과정에 추가되면서 작동하게 된다.
1. UCLASS나 UPROPERTY와 같은 매크로의 사용
2. UHT가 모든 헤더파일을 컴파일되기 전에 스캔하여 매크로를 찾아낸다.
3. 해당 매크로들을 기반으로 각 클래스의 속성, 함수에 대한 정보 등의 메타데이터가 담긴 코드를 자동으로 생성한다.
4. 해당 메타데이터들과 함께 컴파일하여 최종적인 실행을 한다.
'unreal 5기' 카테고리의 다른 글
| 251024 언리얼엔진 본캠프 52일차 게임플레이 프레임워크 (0) | 2025.10.24 |
|---|---|
| 251023 언리얼엔진 본캠프 51일차 레플리케이션(Replication) (0) | 2025.10.23 |
| 251021 언리얼엔진 본캠프 49일차 언리얼엔진의 Cast (0) | 2025.10.21 |
| 251020 언리얼엔진 본캠프 48일차 CDO와 UObject (0) | 2025.10.20 |
| 251016 언리얼엔진 본캠프 46일차 UPROPERTY와 UFUNCTION (0) | 2025.10.16 |