Format Atlas

비교

CBOR와 JSON

CBOR는 JSON 데이터 모델을 확장한 바이너리 교환 형식으로 바이트 문자열과 태그 같은 값을 표현합니다. JSON은 사람이 읽을 수 있는 텍스트 교환 형식으로 웹 API와 설정 도구에서 널리 쓰입니다.

어떤 형식을 선택해야 할까요?

사람이 편집하거나 확인하는 텍스트와 기존 JSON API 호환성에는 JSON을 선택하세요. 프로토콜에 간결한 바이너리 데이터, 바이트 문자열, 확장 타입, 결정적 인코딩이 필요하면 CBOR를 고려하세요.

적합한 경우 CBOR

제약이 있는 기기와 네트워크에서 구조화된 데이터 교환 · COSE 및 IoT 프로토콜의 데이터 표현

  • JSON과 비슷한 데이터를 작은 바이너리 형태로 표현
  • 표준 또는 애플리케이션 정의 태그로 값의 의미 표시

적합한 경우 JSON

웹 API, 설정 파일 및 데이터 교환

  • 구조화된 데이터 전달

기본 정보

항목CBORJSON
확장자.cbor.json
MIME 유형application/cborapplication/json
주요 용도제약이 있는 기기와 네트워크에서 구조화된 데이터 교환 · COSE 및 IoT 프로토콜의 데이터 표현웹 API, 설정 파일 및 데이터 교환
여는 방법CBOR 라이브러리나 디코더로 읽고 진단 표기 또는 JSON과 비슷한 보기로 확인합니다. 태그와 바이트 문자열처럼 JSON에 바로 대응하지 않는 값의 표현을 살펴보세요.텍스트 편집기, IDE 또는 JSON 지원 뷰어로 엽니다.
내보내기 또는 변환JSON으로 변환할 때 바이트 문자열과 태그가 붙은 값은 JSON에 직접 대응하지 않아 도구별 표현이 필요할 수 있습니다. 서명, 해시, 캐시 키에 쓸 때는 RFC 8949의 결정적 인코딩 등 프로토콜에서 합의한 규칙을 따르세요.애플리케이션이나 변환 도구로 CSV 등의 형식으로 변환할 수 있습니다.

용도별 선택

JSON과 비슷한 데이터를 작은 바이너리 형태로 표현

제약이 있는 기기와 네트워크에서 구조화된 데이터 교환 · COSE 및 IoT 프로토콜의 데이터 표현

CBOR

표준 또는 애플리케이션 정의 태그로 값의 의미 표시

제약이 있는 기기와 네트워크에서 구조화된 데이터 교환 · COSE 및 IoT 프로토콜의 데이터 표현

CBOR

구조화된 데이터 전달

웹 API, 설정 파일 및 데이터 교환

JSON

핵심 사항 1

JSON은 문자로 표현되는 텍스트이고 CBOR 항목은 바이너리 바이트입니다. CBOR는 정수, 바이트 문자열, 태그를 직접 지원하지만 JSON은 바이너리 값을 base64 문자열 같은 규칙으로 표현하는 경우가 많습니다.

차이 자세히 보기

핵심 사항 2

RFC 8259 JSON은 앱 스키마 없이 객체, 배열, 문자열, 숫자, 불리언, null을 정의합니다. CBOR는 태그 값을 추가해 데이터 모델을 확장합니다.

차이 자세히 보기

차이 자세히 보기

확인하기 쉬운 텍스트 인터페이스와 폭넓은 도구에는 JSON을 사용하세요. 바이트 문자열, 태그, 결정적 인코딩을 활용하는 바이너리 프로토콜에는 CBOR를 사용하세요. 양쪽에서 태그 의미, 숫자 범위, 정규화, 라이브러리 지원을 합의하세요.

  • CBOR 진단 표기는 디버깅용이며 실제 교환은 바이너리 항목입니다. JSON 교환은 텍스트입니다.
  • CBOR를 JSON으로 변환하면 태그, 바이트 문자열 구분, 정수 표현, 숫자 정밀도, 결정적 인코딩 속성이 사라질 수 있습니다.
  • 알 수 없는 태그, 큰 정수, 중복 map 키, JSON에 직접 대응 값이 없는 경우의 처리 방식을 정하고 실제 메시지로 구현을 시험하세요.

자주 묻는 질문

CBOR는 압축된 JSON일 뿐인가요?

아닙니다. CBOR는 자체 바이너리 데이터 모델을 가지며 JSON이 기본 지원하지 않는 바이트 문자열과 태그를 표현할 수 있습니다.

자세히 보기

참고 자료 및 사양