restore contract

저장 데이터는 값, 식별자, 버전, 검증 규칙을 함께 담는 계약이다

SaveGame 파일은 메모리 주소를 보존하지 않으므로, 다시 찾을 수 있는 값으로 복원 경로를 남겨야 합니다.

Value UPROPERTY 값 타입과 컨테이너
Reference ID, 이름, SoftObject 경로
Version 구버전 저장 파일 분기
01
대상 선택

저장할 값과 다시 찾을 참조를 분리합니다.

02
형식 결정

SaveGame, JSON, DataTable 핸들을 고릅니다.

03
버전 기록

구조 변경에 대비해 저장 버전을 남깁니다.

04
참조 재연결

로드 시 현재 월드나 에셋에서 다시 찾습니다.

05
검증 적용

없어진 에셋, 잘못된 ID, 누락 필드를 보정합니다.

대상
저장하는 값
복원 방식
체력, 위치, 플래그
값 타입과 컨테이너
UPROPERTY 직렬화로 그대로 읽습니다.
런타임 액터
이름, FGuid, 게임 ID
로드 후 현재 월드에서 검색해 다시 연결합니다.
에셋 참조
SoftObject 또는 Class 경로
필요할 때 비동기 로드하고 실패 분기를 둡니다.
구버전 파일
저장 포맷 버전
필드 추가, 이름 변경, 기본값 보정을 분기합니다.
복원 안정성 경계

포인터 주소를 저장하려 하지 말고, 다음 실행에서도 의미가 남는 식별자를 저장합니다. 로드 후에는 참조 유효성, 버전, 용량, 민감 정보 노출 여부를 함께 확인합니다.