직렬화 Serialization

데이터 직렬화란

  • 직렬화의 개념을 검색해보면 보통은 메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 방식으로 변환하는 것이라고 서술한다
    • 나에게는 선뜻 와닿지 않는 설명이다

직렬화의 이유

  • 데이터 메모리 구조는 크게 2가지로 분류한다

값 형식 데이터 Value Type

  • int, float, char, …
  • 스택에 저장되는 데이터이며, 직접 접근이 가능하다

참조 형식 데이터 Reference Type

  • 포인터 변수 등
  • 힙에 할당되는 데이터이며, 실제 값이 아닌 참조 대상의 주소값이 저장되어 있다

  • 그리고 디스크에 저장 및 네트워크 통신을 위한 데이터는 값 형식 데이터로만 사용할 수 있다

참조 데이터는 왜 사용이 불가능한가?

  • 상기했듯이, 참조 형식 데이터는 실제 사용할 값이 아닌 주소값을 가지고 있다
  • 데이터 주소값은 프로그램의 실행과 종료 및 PC 환경 마다 모두 다르게 재정의된다
  • 때문에 주소값을 실제 값 데이터로 변환해주는 작업이 필요하고, 이것이 직렬화 작업이다
    • 다시 말해, 파싱 가능한 유의미한 데이터로 변환해주는 작업이라고 할 수 있다
    • 직렬화된 데이터를 다시 사용할 환경에서 메모리 상에 옮기면서 주소값을 재정희 하는 작업이 역직렬화 Deserialization이다

출처

  • https://hub1234.tistory.com/m/26

Categories: ,

Updated: