Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

MongoDB Bson 튜토리얼: BSON이란 무엇이며 JSON과 어떻게 다른가요?

BSON(이진 JSON)은 MongoDB 데이터베이스에서 사용되는 JSON 유사 문서의 이진 인코딩 직렬화입니다. 이 글에서는 문서를 저장하기 위해 MongoDB에서 사용하는 이진 데이터 형식인 BSON에 대한 개요를 제공합니다.

Young-jae

Young-jae

Updated on December 20, 2024

BSON (Binary JSON)은 MongoDB 데이터베이스에서 사용되는 JSON 유사 문서의 이진 인코딩 직렬화입니다. 이 문서에서는 BSON과 MongoDB에서 문서를 저장하는 데 사용되는 이진 데이터 형식에 대한 개요를 제공합니다.

BSON이 무엇인지, JSON의 기능을 어떻게 확장하는지 및 BSON과 JSON의 주요 차이점에 대해 설명합니다. 또한 Apidog 가 이를 자동으로 처리하는 방법을 포함합니다. 마지막으로 MongoDB와 상호 작용하기 위해 Apidog를 사용하여 기본 CRUD 작업 및 데이터베이스 명령의 예를 보여줍니다.

버튼

MongoDB에서 BSON이란?

BSON (Binary JSON)은 MongoDB 데이터베이스에서 사용되는 주요 데이터 형식입니다. MongoDB에서 BSON에 대해 알아야 할 몇 가지 주요 사항:

  • BSON은 JSON 문서의 이진 표현입니다. 날짜, 타임스탬프, 이진 데이터와 같은 추가 데이터 유형으로 JSON을 확장합니다.
  • MongoDB는 모든 데이터를 내부적으로 BSON 형식으로 저장합니다. 문서를 MongoDB에 삽입할 때, 디스크에 기록되기 전에 먼저 BSON으로 변환됩니다.
  • BSON은 유형 및 길이 정보를 인코딩하여 MongoDB가 각 문서를 검사하고 해석하지 않고도 문서를 효율적으로 검색하고 탐색할 수 있도록 합니다. 이것은 성능을 향상시킵니다.
  • BSON은 경량, 탐색 가능 및 인코딩/디코딩에 효율적으로 설계되었습니다. 이는 MongoDB에 해당하는 데이터 저장 및 교환 형식으로 적합하게 만듭니다.
  • BSON 파일의 기본 파일 확장자는 .bson입니다. Mongoexport와 같은 Mongo 도구를 사용하여 백업 또는 마이그레이션을 위해 MongoDB 데이터를 BSON으로 내보낼 수 있습니다.
  • BSON은 높은 탐색성을 제공하도록 설계되었습니다. MongoDB 쿼리는 인덱스를 활용하여 모든 문서를 스캔하지 않고도 결과를 빠르게 찾고 검색합니다.

BSON 문서의 구조

BSON (Binary JSON)은 MongoDB 데이터베이스에서 사용되는 JSON 유사 문서의 이진 인코딩 직렬화입니다. BSON 문서는 JSON 객체와 유사한 순서 있는 필드-값 쌍으로 구성됩니다.

필드는 유효한 UTF-8 문자열일 수 있으며, 값은 문자열, 정수, 더블, 이진 데이터, 배열, 문서, 부울, 날짜, null 등 여러 BSON 데이터 유형 중 하나일 수 있습니다. BSON 문서의 구조는 전체 문서 크기를 나타내는 4바이트 정수로 시작합니다.

다음으로 "_id" 필드를 포함하는 필드-값 쌍이 있으며, 이 필드는 문서를 고유하게 식별합니다. 문서 내용은 데이터 유형에 따라 특정 이진 형식으로 인코딩된 각 필드-값 쌍으로 이어집니다.

BSON 문서 구조를 보여주는 예:

// 샘플 BSON 문서
{
  _id: ObjectId("507f1f77bcf86cd799439011"), // 12바이트 고유 ID
  name: "John Doe", // 문자열
  age: 35, // 정수
  address: { // 내장 문서
    street: "123 Main St",
    city: "Anytown", 
    state: "CA"
  },
  hobbies: ["reading", "hiking","swimming"], // 배열
  graduated: true, // 부울
  birthday: ISODate("1980-05-15T00:00:00Z"), // 날짜
  data: BinData(0, "SGVsbG8gV29ybGQ="), // 이진 데이터
  ts: Timestamp(1590583045633, 1) // 타임스탬프
}

유의할 주요 사항:

  • _id 필드는 문서를 고유하게 식별합니다.
  • 필드-값 쌍은 정의된 순서를 가집니다.
  • ISODate, ObjectId 등의 추가 데이터 유형을 지원합니다.
  • 문서와 배열을 내장할 수 있습니다.
  • 이진 데이터가 효율적으로 저장됩니다.

JSON과 BSON의 차이점은 무엇인가요?

JSON과 BSON의 주요 차이점은 다음과 같습니다:

  • 인코딩: JSON은 텍스트 기반이며 UTF-8로 인코딩되고, BSON은 이진 인코딩됩니다.
  • 데이터 유형: JSON은 문자열, 숫자, 부울, 배열 및 객체와 같은 제한된 데이터 유형만 지원합니다. BSON은 날짜, 이진 데이터, 정규 표현식 등 추가 유형을 지원합니다.
  • 효율성: 이진 BSON 인코딩은 JSON에 비해 데이터 저장 및 조회를 보다 효율적으로 수행할 수 있게 합니다. BSON 문서는 길이 접두사가 있으며 공백이 없으므로 더 빠르게 파싱할 수 있습니다.
  • 정렬: BSON 문서의 필드-값 쌍은 정렬되어 있어 효율적인 탐색 및 인덱싱을 허용합니다. JSON 객체는 정렬 보장을 하지 않습니다.
  • 유연성: BSON은 필드 이름에 특수 문자 및 유니코드를 포함할 수 있도록 하는 등의 유연성을 제공합니다.
  • 사용: JSON은 웹 및 애플리케이션 전반에 널리 사용되는 일반 형식입니다. BSON은 MongoDB 데이터베이스에서 주 데이터 표현으로 특별히 사용됩니다.
  • 스키마: JSON은 기본적으로 스키마가 없고 MongoDB는 BSON 문서에 대해 검증 규칙을 통해 스키마를 강제할 수 있습니다.
  • 널 값: JSON은 하나의 널 값만 있습니다. BSON은 널과 누락된 필드를 구별합니다.

Apidog로 MongoDB에서 JSON과 BSON 변환하기

Apidog는 API 개발을 간소화하는 API 툴킷입니다. 통합 데이터베이스 선택 중 하나로 MongoDB를 제공합니다. Apidog와 함께 MongoDB를 사용하면 API 모의 및 테스트를 백엔드로 MongoDB에 저장할 수 있습니다.

Apidog에서 제공하는 모의 API 응답은 MongoDB 데이터베이스에 저장된 데이터를 기반으로 제공될 수 있습니다. 이는 Apidog가 모의 API에 대한 영구 데이터 소스로 MongoDB를 활용할 수 있게 합니다. 다음으로 JSON과 BSON의 관계에 대해 설명하겠습니다.

버튼

MongoDB는 데이터를 BSON 문서로 저장하는데, 이는 JSON의 상위 집합으로 볼 수 있습니다. Apidog와 함께 MongoDB 데이터베이스를 사용할 때, JSON은 내용을 구성하는 데 사용됩니다. Apidog는 실제 JSON 내용에 따라 각 필드를 해당 BSON 데이터 유형에 자동으로 매핑합니다.

하나의 특별한 경우는 _id 필드입니다. MongoDB 관례에 따라, 각 문서는 기본 키로서 _id 필드를 가져야 하며, 기본 데이터 유형으로 ObjectId를 사용합니다.

Apidog를 사용하면 ObjectId 유형의 _id 필드를 선언할 때 일반 문자열 형식을 사용하십시오. 문자열 내용이 ObjectId 형식에 부합하는 경우, Apidog는 이를 BSON의 ObjectId 유형으로 자동으로 매핑합니다.

예를 들어, MongoDB에는 다음과 같은 BSON 문서가 있습니다:

코드 복사
{
    _id: ObjectId('654e056de3662b1c09477cc3
'),
    name: "Apidog"
}

그런 다음 Apidog로 _id로 이 문서를 쿼리하려면 "쿼리 조건"에 넣어야 할 JSON은 다음과 같습니다:

코드 복사
{
    "_id": "654e056de3662b1c09477cc3"
}
MongoDB
Ollama 사용법: Ollama를 이용한 로컬 LLM 완전 초보 가이드관점

Ollama 사용법: Ollama를 이용한 로컬 LLM 완전 초보 가이드

인공지능의 세계는 끊임없이 발전하고 있으며, 대규모 언어 모델(LLM)은 점점 더 강력해지고 접근성이 높아지고 있습니다. 많은 사람들이 클라우드 기반 서비스를 통해 이러한 모델과 상호작용하지만, 개인 컴퓨터에서 직접 실행하는 데 초점을 맞추는 움직임이 커지고 있습니다. 바로 여기서 Ollama가 등장합니다. Ollama는 Llama 3, Mistral, Gemma, Phi 등 최첨단 LLM을 로컬에서 다운로드, 설정 및 실행하는 복잡한 과정을 획기적으로 단순화하도록 설계된 강력하면서도 사용자 친화적인 도구입니다. 이 포괄적인 가이드는 설치 및 기본 사용법부터 고급 사용자 지정, API 사용 및 필수 문제 해결까지 Ollama를 시작하는 데 필요한 모든 것을 안내합니다. 로컬 LLM을 애플리케이션에 통합하려는 개발자, 다양한 아키텍처를 실험하려는 연구원, 또는 오프라인에서 AI를 실행하는 데 관심이 있는 애호가이든 관계없이 Ollama는 간소화되고 효율적인 플랫폼을 제공합니다. �

Young-jae

April 28, 2025

Swagger UI 한국어 무료 다운로드 위치관점

Swagger UI 한국어 무료 다운로드 위치

Swagger UI 한국어 인터페이스를 얻는 것의 어려움을 탐색하고 Apidog이 API 개발을 위한 강력한 플랫폼 대안인 이유를 알아보세요.

Oliver Kingsley

April 23, 2025

무료 한국어 Postman 다운로드 방법관점

무료 한국어 Postman 다운로드 방법

Postman 한국어 버전을 무료로 다운로드할 수 있나요? Postman은 한국어를 네이티브로 지원하지 않지만, 해결 방법은 있습니다. 이 방법들을 살펴보고 언어에 관계없이 전체 API 워크플로우를 간소화하도록 설계된 강력하고 통합된 Postman 대안인 Apidog을 발견하십시오.

Oliver Kingsley

April 22, 2025