직렬화와 역직렬화
직렬화(Serialization) : 객체 데이터를 저장하거나 전송 가능한 형식(ex. JSON, binary)으로 변환하는 과정
역직렬화(Deserialization) : 직렬화된 데이터를 다시 원래 객체로 복원하는 과정
직렬화가 필요한 이유
1. 데이터 타입의 특성과 메모리 주소 의존성
기본형(Primitive Type)
실제 값을 메모리의 stack에 저장
데이터 저장/전송이 바로 가능
ex) int, float, char
참조형(Reference Type)
메모리의 heap에 데이터를 저장하고 stack에 메모리 주소를 저장
참조형 데이터는 메모리 주소를 저장하지만
주소는 프로그램 종료 시 사라지거나 시스템마다 달라 저장/전송이 불가능ex) 객체, 리스트
→ 직렬화를 통해 참조형 데이터를 기본형 데이터로 변환하여 저장/전송 가능하게 만든다.
2. 포맷의 필요성
데이터를 저장하거나 전송하려면 표준화된 포맷(ex. JSON, binary)으로 변환해야 다른 시스템에서도 읽을 수 있다.
직렬화는 데이터의 저장과 전송을 가능하게 만들며
참조형 데이터를 표준화된 포맷으로 변환해 다른 시스템과 통신할 수 있도록 하는 과정이다.
REFERENCE