왜 Unreal Engine은 RTTI를 직접 구현할까?

🚀 들어가며 이전 글에서는 C++에서 다운캐스팅이 왜 위험한지, 그리고 dynamic_cast 없이 타입을 확인하기 위한 TypeId/TypeInfo 기반 커스텀 RTTI 시스템을 직접 구현해봤습니다. 그 과정을 보면 자연스럽게 이런 질문이 생깁니다. ❓ 그런데 Unreal Engine은 왜 C++의 기본 RTTI를 그대로 사용하지 않을까? C++에는…

C++ shared_ptr의 Control Block은 어디에 생성될까?

🚀 들어가며 이전 글들에서는 C++ 스마트 포인터의 기본 개념과 함께, shared_ptr, weak_ptr, enable_shared_from_this의 동작 원리를 살펴보았습니다. 그 과정에서 계속 등장한 핵심 개념이 하나 있습니다. 👉 바로 Control Block 입니다. shared_ptr은 객체의 생명주기 관리를 위해 Control Block을 사용합니다. Control Block에는 strong…

C++ enable_shared_from_this 완벽 정리 | shared_ptr(this)가 위험한 이유

🚀 들어가며 이전 글에서는 weak_ptr이 왜 필요한지와 함께, shared_ptr의 순환 참조 문제를 어떻게 해결하는지 정리해보았습니다. shared_ptr은 매우 편리한 스마트 포인터입니다. 객체의 생명주기를 자동으로 관리해주고, 객체의 소멸 시점을 정확하게 알 수 없는 상황에서도 안전하게 객체를 공유할 수 있습니다. 하지만 shared_ptr을 사용할…

weak_ptr은 왜 필요할까? shared_ptr 순환 참조 문제 이해하기

🚀 들어가며 이전 글에서는 shared_ptr의 내부 구조를 살펴보았습니다. shared_ptr은 객체의 생명주기를 관리하기 위해 Control Block을 사용하고, Control Block 안에는 strong count와 weak count 같은 정보가 저장됩니다. shared_ptr은 매우 편리한 도구입니다. 객체의 소멸 시점을 정확하게 알 수 없을 때, 참조 카운트를…

shared_ptr 내부 구조 이해하기 | Control Block, 참조 카운트, make_shared 차이

🚀 들어가며 이번 글에서는 shared_ptr의 내부 구조 즉, 동작 매커니즘을 살펴보고자 합니다. 이전 글에서는 C++ 스마트 포인터의 기본 개념과 함께 unique_ptr, shared_ptr, weak_ptr의 사용 기준을 살펴봤습니다. 특히 shared_ptr을 설명할 때 중요한 문장이 있었습니다. “객체의 소멸 시점을 명확히 알 수 없을…

C++ 스마트 포인터 완전 정리: unique_ptr, shared_ptr, weak_ptr 그리고 면접에서 원하는 답변까지

🚀 들어가며 C++ 스마트 포인터에 대해 살펴봅니다. C++에서 메모리 관리는 항상 중요한 주제입니다. C++는 사용자(개발자)에게 메모리 관리 책임을 맡기는 대표적인 프로그래밍 언어입니다. 원시 포인터를 직접 다룰 때는 아래와 같이 메모리를 할당하고 해제할 수 있습니다. MyClass* obj = new MyClass(); delete…

AI 시대 개발자가 살아남는 방법은 결국 이것입니다

🚀 들어가며 AI 시대 개발자가 살아남는 방법에 대해 요즘 많이 고민하게 됩니다. AI 시대 개발자는 무엇을 공부해야 할까요? 그동안 개인적으로 여러 프로젝트를 진행하고, 수업을 하면서 많은 분들을 만나왔습니다. 특히 개발을 준비하시는 분들, 그리고 1~3년 차의 신입 개발자분들과 이야기를 나눠보면 공통적으로…

deltaTime 완벽 이해 | 왜 프레임마다 시간이 다를까?

🚀 들어가며 deltaTime은 게임 개발에서 반드시 이해해야 하는 핵심 개념입니다. 게임을 만들다가 이런 경험을 해보셨을 겁니다. 컴퓨터가 빠르면 게임이 빨라지고 컴퓨터가 느리면 게임이 느려진다 같은 코드인데 실행 환경에 따라 게임 속도가 달라집니다. 이 문제를 해결하는 핵심 개념이 바로 deltaTime입니다. 🎯…

C++ RTTI 완벽 정리 (dynamic_cast, typeid 실전 활용까지)

dynamic_cast를 왜 써야 하는지, RTTI 개념부터 typeid 활용까지 한 번에 정리했습니다. 👉 잘못된 캐스팅으로 인한 버그, RTTI로 안전하게 해결할 수 있습니다.   C++로 게임이나 엔진을 개발하다 보면 이런 문제를 만나게 됩니다. “이 포인터가 실제로 어떤 타입인지 알고 싶다” “상속 구조에서…