[DB/Infra] Mongodb(몽고DB)에서 사용하는 BSON(binary JSON) 이란? JSON 과의 차이점과 개념정리



1. JSON(JavaScript Object Notation)

  • JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 많이 사용되는 데이터 형식
  • Javascript의 객체 형태가 곧 JSON 입니다.
  • JSON 표현식은 사람과 기계 모두 이해하기 쉽습니다.
  • 기존에는 XML을 많이 사용했으나, 현재는 JSON 이 대체해서 많이 사용되고 있습니다.
  • 아래와 같은 형식으로 많이 사용됩니다.
{
  "users": [
    {
      "name": "James",
      "age": 20
    },
    {
      "name": "Mark",
      "age": 30
    },
    {
      "name": "Someone",
      "age": 25
    } 
  ]
}

2. BSON(binary JSON)

  • Monbodb(몽고DB) 에서는 데이터 CRUD 동작에서 JSON 을 사용합니다.
  • 그런데 Mongodb를 사용하다 보면 Json이 아닌 BSON(binary json)이라는 용어를 사용합니다.
  • BSON(binary json)은 binary로 serialization(인코딩) 되어 있는 JSON 을 지칭합니다.
  • Bson은 기계어로 변환된 값이기 때문에 사람이 읽기 위해서는 변환하는 과정, 즉 디코딩 과정이 필요합니다.
  • JSON 은 text 기반입니다. JSON 자체의 형태로 저장할 수도 있지만, 속도적인 측면에서 좋지 않아서 BSON(binary json) 포맷을 사용 합니다.
  • Mongodb에서 파일을 저장할 때에는 BSON 형태로 저장합니다.
  • binary 형태의 파일은 기계가 바로 읽을 수 있기 때문에 속도가 빠릅니다.
  • BSON 이 JSON 보다 저장공간은 더 많이 차지합니다.