CoderTools

CBOR 코덱

CBOR 바이너리 데이터 형식 인코딩 및 디코딩

🔒 100% 로컬 처리입력하신 데이터는 브라우저에서 완전히 처리되며, 서버로 전송되지 않습니다.

네트워크 캡처, IoT 장치 또는 API 응답에서 CBOR 데이터를 붙여넣으세요

예제 데이터

디코딩 결과

CBOR 데이터를 입력하고 디코딩을 클릭하여 결과를 확인하세요

CBOR 데이터 타입 참조

메이저 타입 타입 이름 헤더 바이트 설명
0부호 없는 정수0x00-0x1B0부터 2^64-1까지의 음이 아닌 정수
1음수 정수0x20-0x3B-1부터 -2^64까지의 음수 정수
2바이트 문자열0x40-0x5B임의 길이의 원시 바이너리 데이터
3텍스트 문자열0x60-0x7BUTF-8 인코딩된 텍스트 문자열
4배열0x80-0x9B데이터 항목의 순서가 있는 컬렉션
50xA0-0xBB키-값 쌍 (객체)
6태그0xC0-0xDB확장 타입을 위한 의미론적 태그
7심플/플로트0xE0-0xFB불리언, null, undefined 및 부동소수점 숫자

CBOR 프로토콜 문서

CBOR이란?

CBOR(Concise Binary Object Representation)은 RFC 8949에 정의된 바이너리 데이터 직렬화 형식입니다. JSON의 컴팩트한 대안으로 설계된 CBOR은 JSON 데이터 모델과의 호환성을 유지하면서 구조화된 데이터를 효율적인 바이너리 형식으로 인코딩합니다. 이 형식은 자기 설명적이어서 디코더가 외부 스키마 정의 없이 데이터를 파싱할 수 있습니다. CBOR은 대역폭과 처리 능력이 제한된 자원인 IoT 장치 및 임베디드 시스템과 같은 제한된 환경을 위해 특별히 설계되었습니다.

바이너리 인코딩 구조

모든 CBOR 데이터 항목은 두 개의 필드를 포함하는 단일 바이트로 시작합니다: 메이저 타입(3비트)과 추가 정보(5비트). 메이저 타입은 데이터 카테고리(정수, 문자열, 배열 등)를 결정하고, 추가 정보는 인수 길이를 나타내거나 작은 값을 직접 포함합니다. 이 컴팩트한 헤더 설계는 작은 정수와 같은 단순한 값이 단일 바이트만 필요함을 의미합니다.

추가 정보 의미
0-23직접 인코딩된 값 (0-23)
241바이트 부호 없는 정수 뒤따름
252바이트 부호 없는 정수 뒤따름 (big-endian)
264바이트 부호 없는 정수 뒤따름 (big-endian)
278바이트 부호 없는 정수 뒤따름 (big-endian)
31무한 길이 (문자열, 배열, 맵용)

컨테이너 길이 인코딩 옵션

CBOR은 컨테이너(배열 및 맵) 길이 인코딩에 유연성을 제공합니다. 모든 유효한 인코딩은 의미적으로 동일한 데이터를 생성하지만 바이너리 표현은 다릅니다. 이 도구는 다양한 시스템 요구사항에 맞는 4가지 인코딩 모드를 제공합니다.

인코딩 예: {"name":"Alice","age":30}

동일한 JSON 객체를 여러 유효한 방식으로 인코딩할 수 있습니다:

모드 헤더 바이트 설명
CompactA2 ...0xA2 = fixmap(2), 최소 인코딩
Explicit 16-bitB9 00 02 ...0xB9 = map16, 2바이트 길이 뒤따름
Explicit 32-bitBA 00 00 00 02 ...0xBA = map32, 4바이트 길이 뒤따름
IndefiniteBF ... FF0xBF = 무한 map, 0xFF로 종료

4가지 인코딩 모두 동일한 JSON으로 디코딩됩니다. 크기 효율성에는 컴팩트, 프로토콜 호환성에는 명시적 길이, 스트리밍 시나리오에는 무한 길이를 선택하세요.

CBOR vs JSON 비교

두 형식 모두 동일한 논리적 데이터 모델을 표현하지만 다른 목적을 제공합니다. CBOR은 컴팩트한 인코딩과 처리 효율성을 우선시하고, JSON은 사람이 읽을 수 있는 것과 범용 텍스트 기반 상호 운용성을 강조합니다.

CBOR 장점
  • 더 작은 인코딩 크기 (일반적으로 30-50%)
  • 바이너리 데이터의 네이티브 지원
  • 더 빠른 파싱 및 인코딩
  • 날짜, URI 등을 위한 내장 시맨틱 태그
JSON 장점
  • 사람이 읽고 편집 가능
  • 범용 브라우저/언어 지원
  • 더 쉬운 디버깅 및 로깅

일반적인 응용 프로그램

  • IoT 장치 통신 및 센서 데이터 전송
  • WebAuthn/FIDO2 인증 프로토콜
  • COSE 보안 (CBOR 객체 서명 및 암호화)
  • CoAP 메시징 (제한된 애플리케이션 프로토콜)
  • 임베디드 시스템 구성 및 데이터 저장

시맨틱 태그

CBOR 태그는 데이터 항목에 시맨틱 의미를 제공합니다. 태그는 감싸진 값이 어떻게 해석되어야 하는지 나타내는 선택적 래퍼로, 기본 데이터 타입을 넘어선 타입 확장을 가능하게 합니다.

태그 번호 시맨틱 의미
0표준 날짜/시간 문자열 (RFC 3339)
1에포크 기반 날짜/시간 (Unix 타임스탬프)
2큰 양수
3큰 음수
32URI 참조
55799자기 설명 CBOR (매직 넘버)

빠른 메뉴

최근 사용 도구 없음