바닥코딩

BSON 본문

데이터 베이스/MongoDB

BSON

개발공부개발공부 2023. 6. 17. 21:50

이전 포스트에서 MongoDB의 가장 기본요소인 Document가 JSON과 유사한 BSON 구조라는 것을 이야기 했습니다. 

https://dkkim2318.tistory.com/121

 

MongoDB의 구조

MongoDB는 위와 같은 계층적 구조를 가지고 있습니다. DataBase 안에 여러개의 Collection 이 존재하고 이 Collection안에는 여러개의 Document가 있습니다. 이번 포스트에서는 각강에 내용에 대해 자세히 알

dkkim2318.tistory.com

생김새만을 보았을 경우 JSON과 BSON은 차이를 찾기가 어렵습니다. 그렇다면 BSON은 JSON과 어떠한 차이가 있고 왜 MongoDB에서는 BSON의 구조로 데이터를 관리하는지에 대해 알아보겠습니다.

 

JSON vs BSON

 BSON은 MongoDB에서 데이터를 저장하기 위해 사용하는 형식입니다. JSON과 다르다기 보다는 JSON에 포함되는 개념이며 MongoDB에서 사용하기 위해 JSON을 개량하였다고 생각할 수 있습니다.

 ※JSON

 먼저 JSON부터 살펴보면 Javascript Object Notaion의 약자로 데이터를 저장하거나 전송할 떄 사용되는 경량의 DATA교환 형식을 의미합니다 

 사람이 이해하기 쉽게 설계되고 용량이 작아 지금도 물론 많이 쓰이고는 있지만 기존에 많이 사용했던 XML방식을 대체하고 있습니다. JSON은 결국 텍스트 이고 프로그랭 문법이나, 통신 문법이 아닙니다. 즉 데이터를 표현하는 방법일 뿐입니다.

 ※BSON

  BSON은 JSON과 동일한 구조지만 binary로 변경된 구조를 말합니다. 즉 JSON을 인코딩한 포맷입니다. 일반적으로 JSON은 크게 두가지의 단점이 있습니다. 하나는 텍스트 기반이기 때문에 구문분석이 느리며, 담는 정보에 비해 많은 스토리지 공간을 차지합니다.

  BSON은 이진화 인코딩을 통해  기계가 빠르게 읽을 수 있게 JSON을 변경하고  메모리 효율을 높였습니다. 즉 JSON보다 가볍고 빠른  데이터 포맷이라고 할 수 있습니다.

 

BSON의 데이터 타입

BSON은 문자열 , boolean, 숫자, 배열 만을 데이터 타입으로 가질 수 있는 JSON 보다많은 데이터 타입을 제공합니다. 

이와 같이 많은 데이터 타입을 제공하지만 이중 자주 사용하는 데이터 타입에 대해 알아보겠습니다.

  • Null, Undefined : 아무것도 없다는 의미(Undefined는 없어질 예정)
  • Double : 실수형 숫자
  • Integer : 정수형 숫자
  • String : 문자열
  • Object : 객체 (BSON 안에 BSON)
  • Array  : 배열 
  • Boolean : true/false

 

'데이터 베이스 > MongoDB' 카테고리의 다른 글

쉘을 이용한 MongoDB 접속  (0) 2023.06.17
Compass를 이용한 DB서버 접속 및 생성  (0) 2023.06.17
MongoDB의 구조  (0) 2023.06.17
MongoDB는 왜 빠른가?  (1) 2023.06.17
MongoDB 설치하기  (0) 2023.06.17