YAML

[JSON]을 알아보자!

마손(Mason) 2022. 3. 23. 10:53

뭘까?

JavaScript Object Notation의 줄임말로 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.

 

데이터 교환?

수신자와 발신자가 같은 프로그램을 사용하거나 문자열처럼 범용적으로 읽을 수 있을 때 데이터 교환이 가능하다.

모든 수신자와 발신자가 같은 프로그램을 사용하길 기대하긴 힘들 것이니, JSON같이 가벼운 데이터 교환을 위한 포맷을 만들었다고 한다. 여기서 가볍다는 말은 컴퓨터가 쉽게 만들고 읽어들일 수 있다는 것이다.

 

사용법

JSON.stringify: Object Type -> JSON

JSON.parse: JSON -> Object Type

 

전송가능한 string

let transferableMessage = JSON.stringify(message)
console.log(transferableMessage)  // `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage)) // `string`

읽을 수 있는 JSON

let packet = `{"sender":"김코딩","receiver":"박해커","message":"해커야 오늘 저녁 같이 먹을래?","createdAt":"2021-01-12 10:10:10"}`

let obj = JSON.parse(packet)
console.log(obj)
/*
 * {
 * sender: "김코딩",
 * receiver: "박해커",
 * message: "해커야 오늘 저녁 같이 먹을래?",
 * createdAt: "2021-01-12 10:10:10"
 * }
 */
 console.log(typeof(obj))
 // `object`

이렇듯, 전송을 위한 포멧은 string, 읽기 위한 포맷은 JSON이라고 생각하면 된다.

근데 JavaScript에도 객체가 있는데 이것과 무엇이 다를까?

  자바스크립트 객체 JSON
키는 따옴표 없이 쓸 수 있음 반드시 큰따옴표를 붙여야 함
문자열 값 문자열 값은 어떠한 형태의 따옴표도 사용 가능 반드시 큰따옴표로 감싸야 함

미묘하게 다르다!


JSON이 XML보다 유리한 점이 무엇일까?

해당 블로그에 너무 잘 정리되어 있었다.

JSON은 XML보다 빠르고 절약할 수 있다!

JSON은 JSON.stringfy를 통해 한 줄로 만들 수 있다.

YAML은 conf같은 환경설정 파일에 많이 쓰이고, JSON은 데이터 전송에 많이 쓰인다.

 

 

이진 형식의 데이터 교환 포맷도 있다는데?

해당 블로그에 예시를 들어 잘 정리되어 있었다.

이진 형식으로 데이터 교환을 하는 것은 대표적으로 구글의 protobuf가 있다.

해당 포맷도 JSON과 같이 언어를 막론하고 데이터 교환을 할 수 있다.

데이터 교환시 문자열이 아닌 이진 형식을 이용하므로 속도에서 우수하다.