Format Atlas

비교

BSON과 JSON

BSON은 길이 접두사가 있는 바이너리 문서 형식으로 JSON과 비슷한 구조에 날짜, 바이너리, ObjectId 같은 추가 타입을 제공합니다. JSON은 RFC 8259의 텍스트 형식으로 가독성과 폭넓은 도구 지원이 장점입니다.

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

MongoDB 호환 문서와 명시적인 날짜, 바이너리, 식별자 타입이 필요하면 BSON을 고려하세요. 사람의 확인, 웹 API, 텍스트 설정에는 JSON이 더 편리한 경우가 많습니다.

적합한 경우 BSON

MongoDB 문서 직렬화 · BSON 지원 도구 간 문서 교환

  • 날짜와 바이너리 데이터 같은 자료형 보존
  • BSON을 읽고 쓰는 드라이버와 도구 사용

적합한 경우 JSON

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

  • 구조화된 데이터 전달

기본 정보

항목BSONJSON
확장자.bson.json
MIME 유형application/bsonapplication/json
주요 용도MongoDB 문서 직렬화 · BSON 지원 도구 간 문서 교환웹 API, 설정 파일 및 데이터 교환
여는 방법mongorestore 또는 BSON 지원 도구나 라이브러리로 읽습니다. 내용을 확인하려면 Extended JSON 등 읽을 수 있는 표현으로 변환하세요. 바이너리 파일을 텍스트 편집기로 수정하지 마세요.텍스트 편집기, IDE 또는 JSON 지원 뷰어로 엽니다.
내보내기 또는 변환JSON으로 변환할 때 날짜, ObjectId, 바이너리 값은 표준 JSON에 대응 자료형이 없어 Extended JSON 표기나 애플리케이션별 표현이 필요할 수 있습니다. 다시 BSON으로 되돌려야 한다면 자료형 정보를 보존하는 방법을 선택하고 실제 데이터로 테스트하세요.애플리케이션이나 변환 도구로 CSV 등의 형식으로 변환할 수 있습니다.

용도별 선택

날짜와 바이너리 데이터 같은 자료형 보존

MongoDB 문서 직렬화 · BSON 지원 도구 간 문서 교환

BSON

BSON을 읽고 쓰는 드라이버와 도구 사용

MongoDB 문서 직렬화 · BSON 지원 도구 간 문서 교환

BSON

구조화된 데이터 전달

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

JSON

핵심 사항 1

BSON은 문서 길이와 요소 타입을 바이너리로 저장하며 date, binary, ObjectId 타입이 있습니다. JSON은 텍스트이고 기본 타입에 전용 날짜나 바이트 문자열이 없습니다.

차이 자세히 보기

핵심 사항 2

BSON은 int32, int64, double을 구분합니다. JSON 숫자에는 이 타입 표지가 없으므로 런타임에 따라 범위와 정밀도 처리가 다를 수 있습니다.

차이 자세히 보기

차이 자세히 보기

데이터베이스나 프로토콜이 BSON 타입과 문서 프레이밍을 기대하면 BSON을 사용하세요. 텍스트 상호운용성과 확인 편의가 중요하면 JSON을 사용하세요. 특수값 매핑을 정하고 실제 드라이버와 소비자로 테스트하세요.

  • BSON은 JSON을 단순히 바이너리로 직렬화한 것이 아닙니다. 명시적 길이와 BSON 고유 값을 가진 타입 문서를 정의합니다.
  • BSON을 JSON으로 변환하면 ObjectId 정체성, 날짜 정밀도나 시간대 가정, binary subtype, Decimal128 동작, 정수 정밀도, 중복 키 의미가 사라질 수 있습니다.
  • 숫자 범위, 배열 순서, 내장 문서, null과 누락 필드, 바이너리 인코딩, Extended JSON 표현 규칙을 확인하세요.

자주 묻는 질문

표준 JSON으로 모든 BSON 값을 직접 표현할 수 있나요?

아니요. JSON에는 ObjectId, 날짜, 임의 바이트 문자열의 기본 타입이 없습니다. 관례나 Extended JSON을 사용하며 양쪽이 표현을 합의해야 합니다.

자세히 보기

참고 자료 및 사양