UE의 스마트 포인터 라이브러리에는 아래 4가지 스마트 포인터가 있습니다. - TSharedPtr - TSharedRef - TWeakPtr - TUniquePtr 위 스마트 포인터들은 메모리 할당과 추적의 부담을 해소해주도록 설계된 C++11의 스마트 포인터의 커스텀 구현입니다. 위 스마트 포인터들은 언리얼 오브젝트(UObject)에 대해 사용할 수 없습니다. 언리얼 오브젝트(UObject)는 별도의 메모리 추적 시스템(GC)를 사용하기 때문입니다. (UObject GC에 의헤 TSharedPtr로 관리됩니다. 그래서 TSharedPtr로 UObject를 가르킬 수 없습니다. => 사이클 발생) TSharedPtr 위에서 설명한것과 같이 TSharedPtr은 UObject를 가르킬 수 없습니다. UOb..
이번글은 C++의 스마트 포인터에 대한 글입니다. 스마트 포인터 C++이후에 나온 언어들을 보면은 C#, JAVA 등등은 '가비지 컬렉터'라고 불리는 '자원 청소기'가 내장되어 있습니다. 프로그램 상에서 더이상 사용하지 않는 자원들을 자동으로 해제 해주기 때문에 사용자가 굳이 메모리 해제를 일일히 신경쓰면서 작업할 필요가 없습니다. 하지만 우리의 C++의 경우 이딴건 지원을 하지 않습니다! (이게 매력인거 같습니다) 그래서 스마트 포인터를 사용하는데 스마트 포인터를 사용하는 가장 큰 이유는 'RAII'때문입니다. Resource Acquisition Is Intialization이라는 말인데요 '오브젝트와 자원 획득과의 초기화를 같이한다(생명주기를 같이한다)'라는 말입니다. (따라서 모든 스마트 포인터는..