[MongoDB] JSON vs. BSON

yezo cha·2021년 9월 3일
0
post-thumbnail

mongoDB는 Document로 데이터를 관리한다. BSON의 형태로 저장하고, 보통 읽기 쉬운 JSON의 형태로 출력된다.
JSON은 무엇이고 BSON이 무엇인지 차이를 알아보자.

JSON

JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식을 말한다.
JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용된다.
JSON은 데이터 포맷일 뿐이며 어떠한 통신 문법도, 프로그래밍 문법도 아닌 단순히 데이터를 표현하는 방법이다.

JSON의 형태는 일반적으로 key와 value의 값으로 채워져 있다.
직관적이고 간단한 특성으로 쉽게 이해할 수 있는 형태의 표현 방법이다.

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

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

특징

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

BSON(Binary JSON)

BSONJSON과 동일한 구조지만 Binary 형태로 변경된 구조를 말한다.
JSON Document를 Binary로 인코딩한 포맷.
JSON의 단점을 해결하기 위한 방안이다.
컴퓨터의 언어에 가까운 2진법에 기반을 둔 표현법이다.
JSON과 비교해서 BSON은 스토리지 공간과 스캔 속도 모두 효율적으로 설계되어 있다.

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

특징

  • JSON보다 메모리 사용에 효율적이다.
  • 보다 빠르고 가볍고 유연하다.
  • JSON보다 더 많은 데이터 타입을 사용할 수 있다.

XML vs JSON vs BSON

JSON의 등장 전에는 주로 XML을 사용해서 웹에서 데이터를 주고 받았다.
자바스크립트의 사용이 증가하면서 사람과 기계가 모두 읽을 수 있는 형태의 구조가 구현하기에도 쉽고 이해하기에도 쉬워서 JSON의 사용이 증가하게 되었다.

  • XML
    • 지금도 엄청나게 널리 쓰이고 있다.
    • 의미를 확인하기 위한 불필요한 태그가 포함된다.
    • DTO를 사용하기 위해서는 반드시 파싱 과정을 거쳐야 한다.
  • JSON
    - 중괄호{}를 사용하고, 값을 ,로 나열하기에 표현이 간단하다.
    • 대부분의 언어별 LIB 지원된다.
    • 불필요한 XML대비 TEXT가 없어 패킷 용량이 감소한다.
    • 대부분 언어의 기본 collection type으로 바로 사용이 가능하다.
  • BSON
    - JSON 내용을 Binary로 변환하여 패킷 용량이 감소한다.
    • 아직 JSON이나 XML만큼 다양한 언어 LIB는 지원하지 않는다.
profile
(ง •̀_•́)ง

0개의 댓글