🚀 들어가며
C++에서 타입을 다루는 방법은 단순한 문법 이상의 의미를 가집니다.
dynamic_cast로 시작해서
👉 직접 RTTI를 구현하고, 나아가 엔진 수준 구조로 확장하는 과정은
게임 엔진을 이해하는 데 매우 중요한 단계입니다.
이 시리즈에서는:
- RTTI의 개념
- dynamic_cast의 원리와 한계
- 커스텀 RTTI 구현
- Unreal Engine 스타일 구조
- 타입 기반 객체 생성
까지 단계적으로 정리했습니다.
📚 시리즈 전체 글 목록
1️⃣ C++ RTTI 기초
👉 C++ dynamic_cast 원리와 RTTI 개념
- RTTI란 무엇인가
- dynamic_cast 내부 동작
- 성능과 한계
1.5 다운캐스팅의 위험성
👉 C++ 다운캐스팅이 위험한 이유
- static_cast vs dynamic_cast
- 메모리 구조 분석
- undefined behavior
2️⃣ 커스텀 RTTI (기초)
👉 C++ RTTI 구현 (TypeId 기반)
- static 주소 기반 타입 ID
- 빠른 타입 체크
- Cast 함수 구현
3️⃣ 커스텀 RTTI (심화)
👉 C++ RTTI TypeInfo 구조 구현
- 타입 이름과 부모 체인
- IsChildOf 구조
- Unreal Engine 스타일 RTTI
4️⃣ RTTI 활용 (완성)
👉 C++ TSubclassOf 구현 (언리얼 엔진 구조 참고)
- 타입 기반 객체 생성
- SpawnActor 구조
- 엔진 설계 핵심 패턴
🧠 이 시리즈에서 얻을 수 있는 것
이 시리즈를 통해 다음을 이해할 수 있습니다:
- dynamic_cast의 내부 동작
- 왜 게임 엔진에서 RTTI를 직접 구현하는지
- 타입 시스템이 엔진 구조에서 어떻게 사용되는지
- Unreal Engine의 핵심 구조
🎮 이런 분들께 추천합니다
- C++을 사용하는 게임 개발자
- Unreal Engine 내부 구조가 궁금하신 분
- 엔진을 직접 만들어보고 싶은 분
- 객체지향 설계를 깊이 이해하고 싶은 분
🔥 핵심 한 줄 정리
👉 RTTI는 단순한 타입 체크가 아니라, 엔진 설계의 시작입니다
🎯 다음 단계
이 내용을 이해했다면 다음으로 확장해볼 수 있습니다:
- Reflection 시스템
- Property 시스템
- Serialization
- ECS 구조
📌 마무리
이 시리즈는 단순한 개념 설명이 아니라
👉 직접 구현을 통해 구조를 이해하는 과정을 담고 있습니다.
🚀 한 단계 더 나아가고 싶다면
엔진의 내부 구조를 직접 만들어보고 싶으시다면
아래 강의도 참고해보셔도 좋습니다.
👉 강의 링크: C++로 만드는 게임 엔진 프레임워크 (소코반과 슈팅 게임으로 배우는 엔진 구조)
직접 구현해보는 경험이 분명 큰 도움이 됩니다!