언리얼 C++

데이터 직렬화와 역직렬화

직렬화는 런타임 객체 상태를 저장 가능한 형식으로 바꾸고, 역직렬화는 버전이 달라진 저장값을 다시 안전한 객체 상태로 복원하는 경계입니다.

저장 형식, 직렬화 대상, 역직렬화 호환성을 기준으로 데이터 변환 경로를 설계합니다.

데이터 직렬화와 역직렬화 흐름

1

직렬화 (Serialization) 개념

직렬화는 메모리에 있는 복잡한 데이터 구조(객체, 변수, 배열, 맵 등)를 파일이나 네트워크를 통해 전송하거나 저장할 수 있는 순차적인 바이트 스트림(연속된 데이터 형식)으로 변환하는 과정을 말합니다.

2

역직렬화 (Deserialization) 개념

역직렬화는 직렬화된 바이트 스트림을 읽어들여 메모리에서 원래의 복잡한 데이터 구조(객체)로 재구성하는 과정입니다.

3

언리얼 엔진의 직렬화 메커니즘

언리얼 엔진의 직렬화는 UPROPERTY 메타데이터와 UObject 리플렉션을 기준으로 저장/로드 대상을 추적합니다.

4

직렬화 과정에서의 주의사항

데이터 버전 관리: 업데이트 과정에서 USaveGame 구조(변수 추가/제거, 타입 변경)가 바뀌면 구버전 저장 파일 로드 시 문제가 생길 수 있습니다.