DevOps BootCamp/YAML

JSON

cloudmaster 2023. 4. 11. 10:06

JSON의 탄생 배경

 > JSON : JavaScript Object Notation의 약어

 > 데이터 교환을 위해 만들어진 객체 형태의 포맷

 

전송 가능한 조건 (transferable condition)

  • 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다.
  • 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다

 > 객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않음

 > 객체에 메소드(message.toString())나 형변환(String(message))을 시도하면, [object Object] 라는 결과를 리턴

 > 해결하는 방법은 객체를 JSON의 형태로 변환하거나 JSON을 객체의 형태로 변환하는 방법

 > 메소드

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

 > Message 객체를 JSON으로 변환하는 메소드 JSON.stringify

 

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`

 > JSON에 메소드 JSON.parse를 적용하면 다시 객체 형태로 변환

 > JSON은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷

 

JSON의 기본 규칙

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

 

JSON과 XML 차이점

간결성과 가독성:

 > JSON은 경량 데이터 형식으로, 불필요한 태그와 속성을 제거하여 데이터를 더 간결하고 가독성이 좋게 표현

 

파싱 및 처리의 용이성:

 > 대부분의 프로그래밍 언어에서 JSON 데이터를 파싱하여 쉽게 객체 또는 딕셔너리와 같은 데이터 구조로 변환

 

웹 환경에 적합함:

 > 웹 애플리케이션에서 서버와 클라이언트 간의 데이터 교환에 주로 사용되며, 웹 브라우저와 서버 간의 통신에서도 많이 활용

 

확장성:

 > JSON은 확장 가능한 형식이기 때문에 새로운 필드나 속성을 추가하는 등의 데이터 모델의 확장이 용이

 

컴팩트한 데이터 전송:

 > 데이터를 컴팩트하게 표현할 수 있어, 데이터 전송 시에 대역폭과 데이터 사용량을 절약

 

텍스트 형식의 데이터 교환 포맷과 이진 형식의 데이터 교환 포맷의 차이점과 장단점

  > 텍스트 형식의 데이터 교환 포맷

장점

  • 사람이 읽고 이해하기 쉽습니다.
  • 다양한 프로그래밍 언어에서 파싱이 용이하며, 데이터의 가독성과 수정이 용이합니다.
  • 텍스트 기반으로 데이터를 표현하므로, 다양한 시스템 간에 호환성이 높습니다.

단점

  • 텍스트 형태로 데이터를 저장하므로, 크기가 크고 전송 시에 오버헤드가 발생할 수 있습니다.
  • 데이터 타입의 일관성을 보장하기 어려워, 타입 변환이 필요할 수 있습니다.

 

 > 이진 형식의 데이터 교환 포맷

장점

  • 텍스트 형식보다 작은 크기로 데이터를 저장하고 전송할 수 있어, 효율적입니다.
  • 데이터의 타입 변환이 필요 없이 직접 이진 형태로 데이터를 읽고 쓸 수 있어, 처리 속도가 빠릅니다.
  • 특정 언어나 플랫폼에 종속되지 않는 일관된 데이터 표현이 가능합니다.

단점

  • 사람이 직접 읽고 이해하기 어렵습니다.
  • 데이터의 구조 변경이나 업데이트가 필요한 경우, 일반적으로 파싱이 어려울 수 있습니다.
  • 호환성이 낮아, 서로 다른 시스템 간에 데이터 교환이 어려울 수 있습니다.

 

'DevOps BootCamp > YAML' 카테고리의 다른 글

YAML  (0) 2023.04.11