
원본 데이터는 JSON 형식으로 array 필드에 정수 값이 들어 있습니다. serialize 메서드를 사용하여 PackedArray 형식으로 serialize 한 후 deserialize 할 때 원본 데이터가 변형되는 것을 발견했습니다.
원본 데이터는 다음과 같습니다.
serialize 한 후의 데이터는 다음과 같습니다.
이후 deserialize 한 데이터는 다음과 같습니다.
다만, 원본 데이터와는 다르게 _bsontype이 "PackedArray"로만 나옵니다. 원본 데이터의 형식이 유지되지 않습니다.
이러한 현상을 해결하는 방법은 다음과 같습니다.
1. PackedArray 형식으로 serialize 할 때, 원본 데이터의 형식도 함께 serialize 하도록 합니다.
이 코드는 serialize 메서드에 serialize_options 객체를 추가하여 pack_array() 메서드를 호출합니다. 이 메서드는 원본 데이터의 형식도 함께 serialize 하도록 합니다.
2. deserialize 할 때, 원본 데이터의 형식도 함께 deserialize 하도록 합니다.
이 코드는 parse 메서드에 parse_options 객체를 추가하여 pack_array() 메서드를 호출합니다. 이 메서드는 원본 데이터의 형식도 함께 deserialize 하도록 합니다.
위의 코드를 적용하면 원본 데이터의 형식이 유지되어 원본 데이터와 동일한 형식으로 deserialize 할 수 있습니다.
2025-06-24 00:33