직렬화 경계

직렬화는 UPROPERTY로 보이는 값만 안정적으로 믿습니다

언리얼의 저장, 복제, GC는 리플렉션 정보를 바탕으로 움직이므로 C++ 멤버가 엔진에 보이는지 먼저 확인해야 합니다.

경계 기준

저장할 값은 UPROPERTY로 표시하고, UObject 참조는 직접 저장보다 Soft Reference나 안정적인 ID로 바꾸는 쪽이 안전합니다.

UPROPERTY

엔진이 필드를 추적해야 GC, 에디터 노출, SaveGame 플래그가 의도대로 작동합니다.

FArchive

커스텀 바이너리 저장은 버전과 순서가 중요하므로 읽기와 쓰기 구조를 함께 관리합니다.

Reference

런타임 객체 포인터는 세션마다 달라질 수 있어 이름, 경로, GUID 같은 복원 키로 바꿉니다.

Migration

필드가 바뀌면 이전 저장 데이터를 읽을 변환 경로를 남겨 플레이어 데이터를 보호합니다.