[기술] 직렬화 (Serialization) / 역직렬화 (Deserialization)

oy Hong·2024년 4월 11일

기술

목록 보기
5/23

정의


  • 직렬화
    특정 객체를 바이트 단위로 변경한 뒤 디스크에 저장하거나 네트워크로 보낼 수 있게 만들어주는 것

  • 역직렬화
    직렬화된 바이트 배열을 원래 객체로 변경하는 과정을 의미


직렬화를 왜 하는가?

직렬화의 경우에는 현재 사용하고 있는 데이터에 대해서 영속성을 부여하기 위함이다. 프로그램 종료 후에도 객체에 관한 정보를 남겨두고 싶을 때 직렬화를 사용하게 된다.

영속성은 프로그램을 종료하더라도 사라지지 않는 특성을 의미한다.


Unity3D에서의 직렬화

  • public이거나 [SerializeField] 속성이 있어야 함
  • static, const, readonly가 아니어야 함
  • 직렬화 할 수 있는 필드 타입이 있어야 함
    • [Serializable] 속성이 있는 비추상, 비일반 커스텀 클래스
    • [Serializable] 속성이 있는 커스텀 구조체
    • UnityEngine.Object에서 파생된 오브젝트에 대한 레퍼런스
    • int, double, bool 같은 기본 데이터 형식
    • 열거형 타입
    • Vector2, Vcetor3, Color 등과 같은 특정 Unity 내장 타입

0개의 댓글