[MongoDB] JSON vs BSON

유동균·2023년 1월 28일
0

MongoDB

목록 보기
2/12
post-thumbnail

JSON vs BSON

mongoDB는 Document로 데이터를 관리한다. BSON의 형태로 저장하고, 보통 읽기 쉬운 JSON의 형태로 출력된다.

JSON

  • JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식을 말한다.
  • JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용된다.
  • JSON은 데이터 포맷일 뿐이며 어떠한 통신 문법도, 프로그래밍 문법도 아닌 단순히 데이터를 표현하는 방법이다.
{
  "_id": 1,
  "name": { "first" : "John", "last" : "Backus" },
  "contribs": [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
  "awards": [
    {
      "award": "W.W. McDowell Award",
      "year": 1967,
      "by": "IEEE Computer Society"
    }, {
      "award": "Draper Prize",
      "year": 1993,
      "by": "National Academy of Engineering"
    }
  ]
}
  • JSON의 형태는 일반적으로 key와 value의 값으로 채워져 있다.
    직관적이고 간단한 특성으로 쉽게 이해할 수 있는 형태의 표현 방법이다.

  • JSON 형식으로 도큐먼트를 작성하기 위해서는 다음과 같은 조건을 만족해야 한다.

    • 중괄호{}로 도큐먼트가 시작하고 끝나야 한다.
    • 필드와 값이 :콜론으로 분리되어야 하고, 필드와 값을 포함하는 쌍은 쉼표로 나뉘어야 한다.
    • 필드도 문자열이기 때문에 "" 쌍따옴표로 감싸준다.

특징

  • 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다.
  • JSON문서 형식은 자바스크립트 객체의 형식을 기반으로 만들어졌다.
  • 자바스크립트 문법과 굉장히 유사하지만 텍스트 형식일 뿐이다.
  • 특정 언어에 종속되지 않고, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링할 수 있는 라이브러리를 제공한다.
  • 텍스트 형식이라서 읽기 쉽지만, 파싱이 매우 느리고 메모리 사용이 비효율적이다.

BSON (Binary JSON)

  • BSON은 JSON과 동일한 구조지만 Binary 형태로 변경된 구조를 말한다.

  • JSON Document를 Binary로 인코딩한 포맷.

  • JSON의 단점을 해결하기 위한 방안이다.

  • 컴퓨터의 언어에 가까운 2진법에 기반을 둔 표현법이다.

  • JSON과 비교해서 BSON은 스토리지 공간과 스캔 속도 모두 효율적으로 설계되어 있다.

  • JSON이 있는데 왜 BSON이 등장한 것일까?

    • JSON은 텍스트 기반으로 구문 분석이 매우 느리고, 공간 효율성과 거리가 먼 문제점이 있어서 BSON이 생겼다.
  • JSON구조의 좋은 점은 그대로 가져가면서 기계가 빠르게 읽을 수 있는 binary 형태로 변경하여 저장을 한 것이다.

특징

  • JSON보다 메모리 사용에 효율적이다.
  • 보다 빠르고 가볍고 유연하다.
  • JSON보다 더 많은 데이터 타입을 사용할 수 있다.
JSONBSON
유형표준 파일 형식이진 파일 형식
속도느림빠름
공간적은 공간많은 공간
용도데이터 전송데이터 저장
인코딩&디코딩 기술X빠른 인코딩, 디코딩 기술
특성"키":"값" 쌍은 데이터 전송에만 사용됨가볍고, 빠르고 순회 가능
구조비동기 서버 브라우저 통신에 사용되는 언어 독립 형식필드 이름, 유형 및 값을 포함하는 정렬된 요소의 목록으로 구성된 이진 JSON.
필드 이름 유형은 일반적으로 문자열.
순회JSON은 모든 콘텐츠를 통해
skims를 건너뛰지 않습니다.
반면에 BSON은 관련 콘텐츠에 대한 색인만 생성하고
사용하지 않아도 되는 콘텐츠는 모두 건너뜁니다.
파싱JSON은
사람이 읽을 수 있는 형식이므로 파싱할 필요 없음
BSON은 기계에서 구문 분석하고 생성하기 때문에 파싱이 필요합니다.
생성 유형SON은 객체와 키-값 쌍의 모음인 배열로 구성되며 배열은 정렬된 값 목록입니다.이진 인코딩 기술은
문자열 길이 및 객체 하위 유형과 같은 추가 정보로 구성.
또한 BinData 및 Date 데이터 유형은 JSON에서 지원하지 않는 데이터 유형입니다.

0개의 댓글