Jin

developer & writer

객체 직렬화

이미 알고 있는 것

객체 직렬화의 활용은 Jackson 같은 라이브러리를 통해 했었다. 조금 더 직접적인 예시는 프론트엔드 개발에서 localStorage에 저장하고 저장된 것을 가져오는 용도로 사용했었다.

메모리 상의 객체를 다른 형태로 저장하거나 전송하기 위해 사용했다고 일반화할 수 있을 것 같다. 직렬화는 왜 하는 것일까? 이름 자체의 의미는 무엇일까? 한 번 조사해보자.

가장 이해가 안되었던 부분은 serialize한다는 이름 자체의 의미이다. 기술적 정의는 객체는 series of byte 형태로 만든다는 것이다.

사용하는 이유는 데이터 자체를 전송하거나 저장할 수 없거나, 전송 저장의 효율성을 높이기 위한 이유가 클 것이다.

구체적 예시

대표적인 예시로 JSON이 있다. serialization 포맷의 표준이다. 위키피디아에서 정의를 찾아보면 다음과 같이 언급이 나오는 것을 찾을 수 있다.

JSON (JavaScript Object Notation, pronounced /ˈdʒeɪsən/; also /ˈdʒeɪˌsɒn/) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other serializable values).

전송 저장 가능한 형식임과 동시에 사람이 읽을 수 있는 형태라는 점이 중요하다.

참고