I about me

[하루 30분 CS지식] JSON과 직렬화와 역직렬화 본문

CS

[하루 30분 CS지식] JSON과 직렬화와 역직렬화

ssungni 2024. 3. 4. 10:43

인터넷: 전세계 컴퓨터끼리 숫자 문자 쉽게 주고받을 수 있는 네트워크

ex) 우리는 인터넷을 통해 옷 정보(상품가격)를 알 수 있다.

ex) 우리는 인터넷을 통해 게임을 할 수 있다.

 

이렇게 단순한 문자, 숫자 정보 전달에서 시대가 발전됨에 따라 "복잡한 데이터"가 주고 받고 하고 싶어진 것이다.

종목 가격 거래량 날짜
삼성전자 50,000 100 2024-03-04
카카오 60,000 200 2024-03-04
셀트리온 180,000 300 2024-03-04
대웅제약 190,000 400 2024-03-04

 

만약 이런 데이터를 문자열의 형태로 "삼성전자 50,000 100 2024-03-04 카카오 60,000 200 2024-03-04 ..."

서로 주고 받게 된다면 복잡하여 데이터를 올바르게 정제하는 것이 쉽지 않을 것이다.

 

이에 따라 깔끔한 형식으로 정리하여 보낼 필요가 있으며

이러한 데이터 포맷에는 XML, JSON, CSV, YAML, BSON, SMILE 등이 있다.

그러나 내가 오늘부터 공부해볼 책 '면접을 위한 CS 전공지식 노트' 순서에 따라 JSON부터 살펴볼 것이다.

 

인프런 강의와 함께 하고 있는데 처음부터 무슨 소리인지 잘 모르겠어서 몇 개 유튜브를 더 시청한 후 작성 중이다.

덕분에 조금은 이해했던 내용을 바탕으로 정리해보고자 한다.

 

JSON(Javascript Object Notation)

: Javascript 객체 문법으로 구조화된 데이터 교환 형식

 

자바 스트립트에서  객체를 생성하는 것은 변수를 정의하고 초기화하는 것으로 시작한다.

var obj = {}

특히 자바스크립트에서는 아래와 같이 {key:value}의 형태로 객체를 만든다. 

var obj = { name : "kim", age : 20 }

자, 그럼 이제 간단한 예제를 통해 선언한 객체를 외부의 시스템에서 사용할 수 있도록 데이터를 변환시켜보자! 이를 위해서는 직렬화와 역직렬화에 대한 개념을 알아야한다.

 

직렬화

외부의 시스템에서도 사용할 수 있도록 바이트(byte)형태로 데이터를 변환하는 기술

JSON.stringify()

var obj = { name : "kim", age : 20 }
var json = JSON.stringify(obj)
console.log(json)

 

역직렬화

반대를 의미

JSON.parse()

var a = JSON.parse(json)
console.log(a)

 

이렇게 간단한 코드를 쳐보니 그래도 JSON에 대해 좀 알게 된 것 같다