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 |
---|