Javascript 직렬화(serialization)

JavaScript

직렬화의 의미는 자바스크립트의 메모리 상에 존재하는 Object 나 데이터 구조를 다른 용도로 사용하기 위해 포맷을 변환하는 것.

위키의 정의는 아래와 같다.

직렬화 (直列化) 또는 시리얼라이제이션(serialization)은 컴퓨터 과학의 데이터 스토리지 문맥에서 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일이나 메모리 버퍼에서, 또는 네트워크 연결 링크 간 전송)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다.

Why?

아래와 같이 해보면 alert창에는 [object Object] 라고 나오게 된다.

var hello = {"name":"hello"};
alert(hello) // [object Object]

네트워크로 전송을 할 때도 동일하게 [object Object] 로 전달되기 때문에 직렬화를 통해 문자열로 변경이 필요한 것이다.

How? JSON.stringify()

var hello = {"name":"hello"};
var stringHello = JSON.stringify(hello);
alert(stringHello) // {"name":"hello"}

console.log(typeof hello); // object
console.log(typeof stringHello); // string

역직렬화(deserialization) JSON.parse()

var hello = {"name":"hello"};
var stringHello = JSON.stringify(hello); // serialization
var objectHello = JSON.parse(stringHello); // deserialization

alert(objectHello) // [object Object]

console.log(typeof hello); // object
console.log(typeof stringHello); // string
console.log(typeof objectHello); // object
다음 글: Javascript find, findIndex, filter 이전 글: Javascript 템플릿 리터럴(Template literal)

See Also