왜.... 오셨나요?

부끄러워요

개발관련공부자료

개인 세이브 시스템 관련 자료 정리

와피했는데 2023. 11. 1. 11:17

스트림(Stream)

- 일련(Sequence)의 데이터가 한 곳에서 다른 곳으로 직렬로 이동하는 상태(흐름)를 가리키며 stream은 byte의 배열입니다

 

C#의 직렬화

- 직렬화(Serialization)는 개체(Object)를 저장하거나, 메모리(Memory), 데이터베이스(Database) 또는 파일(File)로 전송할 수 있는 형태로 개체 상태를 바이트 스트림으로 변환하는 프로세스를 말합니다.

 

- serialization와 반대로 이진스트림을 개체로 변환하는 deserialization이 있음, 이 두 프로세스를 사용하면 데이터를 쉽게 저장하고 전송이 가능함.

 

- 시스템의 직렬화는 값형식의 데이터들을 참조형식의 object타입으로 박싱하여 파일에 이진 또는 텍스트 참조형태로 직렬화가 이뤄지고 역직렬화하면 파일에서 참조형식을 값형식으로 언박싱하며 개체에 데이터가 덮어씌워지는 형태로 Save, Load 기능이 이뤄진다.


<기존 방식의 SaveSystem>

 

- 기존방식 : Serialization만 관리하는 소스코드와 개체들의 데이터를 관리하는 Data소스코드, Data타입들마다 스트림하기 위한 소스코드들이 별도로 구성해야 함

 

- MemoryPack을 사용한 시스템 방식 : 기존에 Data소스코드와 타입별로 스트림 소스코드가 많아지는 문제점을 하나의 소스코드에 정리하는 방식을 사용했으며(partial 사용) 기존 seralized 관리 구조를 벗어나지 않아 익숙하게 사용가능함

 

*출처 : 본인