본문 바로가기
개념

[개념] 데이터 직렬화(serialization), 역직렬화(deserialization)

by hs_seo 2019. 2. 8.

프로그래밍에서 데이터 직렬화(serialization)는 메모리의 객체를 디스크에 저장하거나, 네트워크를 통해 전송되는 형식으로 변환되는 작업입니다. 역직렬화(deserialization)는 디스크에 저장된 데이터를 읽거나, 네트워크를 통해 전송된 데이터를 받아서 메모리에 재구축하는 것입니다.


데이터는 CSV, XML, JSON, binary 형식으로 다양하게 직렬화 될 수 있습니다. CSV, XML, JSON 등의 형식은 사람이 읽을 수 있지만, 저장 공간의 효율성이 덜어지고 파싱하는 시간이 오래 걸립니다. binary는 사람이 읽을 수 없지만 파싱 시간이 짧습니다.


데이터의 양이 작을 때는 파싱시간이 문제가 되지 않지만, 빅데이터의 경우 파싱시간이 문제가 될 수 있습니다. 이를 해결하기 위해서 에이브로(Avro), 쓰리프트(Thrift), 프로토콜 버퍼(Protocol Buffer), 시퀀스 파일(SequeunceFile) 등이 사용됩니다.


반응형