Dev

[데이터 교환 형식] JSON의 직렬화와 역직렬화

Dream COM Ddulut 2025. 4. 5. 00:42

JSON(JavaScript Object Notation)이란?

JSON은 Javascript 객체 문법을 기반으로 구조화된 데이터 교환 형식입니다.

Python, Javascript, Java 등 여러 언어에서 데이터 교환 형식으로 사용되며, 객체(Object) 형식 외에도 단순 배열, 문자열도 표현 가능합니다.

 

Javascript의 객체(Object)

Key-Value 형식으로 구성된 데이터 구조이다.

const person = {
  name: "뚜룻",
  age: 29,
  isDeveloper: true
};

 

Javascript VS JSON

JSON은 Javascript 객체 리터럴 문법에서 파생된 텍스트 기반 데이터 포맷이고, Javascript는 제어 흐름과 로직을 실행하는 프로그래밍 언어이다.

JSON은 특정 언어에 종속되지 않는 독립적인 포맷으로, 데이터 교환을 위해 사용된다.

 

  Javascript JSON
분류 프로그래밍 언어 데이터 포맷(형식)
목적 로직 작성 및 실행 데이터 저장 및 전송
사용 위치 웹/서버 개발 등 코드 작성 전반에 사용  API, 설정 파일, 데이터 저장 등
문법 복잡한 제어문, 함수, 연산자 등 포함 단순 데이터 표현만 가능

 

 

JSON의 타입

JSON은 JS와 유사하지만 undefined, 메서드 등을 포함하지 않습니다.

JSON의 타입으로는 수(Number), 문자열, Boolean, 배열, 객체, null이 있습니다.

 

 

 

JSON의 직렬화와 역직렬화

예시

 

직렬화(Serialization)란?

객체나 데이터를 외부 시스템과 주고받거나 저장할 수 있도록, 문자열 또는 바이트 등의 형식으로 변환하는 과정입니다.

JSON: 문자열로 직렬화
Protocol Buffers: 이진 직렬화
Java Object Serialization: Java Object를 바이트 스트림 형태로 직렬화

 

역직렬화(Deserialization) 란?

직렬화된 데이터를 프로그래밍 언어에서 사용 가능한 자료구조나 객체로 복원하는 과정입니다.

 

 

JSON의 직렬화와 역직렬화?

JSON 직렬화는 특정 언어의 객체나 자료구조를 JSON 포맷 문자열로 변환하는 과정입니다.

JSON 역직렬화는 JSON 포맷 문자열을 특정 언어에서 사용 가능한 구조로 복원하는 과정입니다.

JSON은 Javascript로 부터 유래했지만 프로그래밍 언어로부터 독립적인 포맷이기 때문에 Javascript가 아닌 다른 언어로의 직렬화와 역직렬화가 모두 가능합니다.

 

 

 

JSON의 활용처

JSON은 특정 언어나 프레임워크 등에 종속되지 않는 독립적인 데이터 포맷입니다.

따라서 서로 다른 시스템 간의 데이터 교환에 활용하기 적합합니다.

주로 API의 응답 형식이나 시스템 설정 파일, NoSQL 데이터 저장 등에 활용됩니다.