Serialization은 객체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하기 위해 개체를 바이트 스트림으로 변환하는 프로세스이다. 주 목적은 필요할 때 다시 객체로 만들 수 있도록 객체의 상태를 저장하는 것.
게임을 예로 들자면 유저가 어떤 stage를 clear하고 나면
- 해당 stage name
- 걸린 시간
- 얻은 점수
- 얻은 아이템
- 기타 여러 정보들...
등등이 게임상에 남아있을것이고
이를 기록하기 위해 local이든 server든 어떤 정해진 형태로 저장을 해놓아야 할것이다.
이때 특정 형태로 데이터들을 json이나 xml 혹은 byte 스트림 형태로 바꿔주어 객체화 및 저장 가능하게 만들어 주는것이 Serialization이다.
웹통신을 하는 게임이라 가정하고 웹통신에 유리한 json을 이용해
위의 정보를 직렬화 한다면,
저장되는 json 파일은 다음과 같은 모양일것이다.
{
stageName : "stage 1",
ellapsedTime : 60.0,
score : 100.0,
itemlist : [
{
name : "sword",
damage : 10.0,
price : 15.5
},
{
name : "gun",
damage : 20.0,
price : 30
}
]
}
참고 : https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/concepts/serialization/