[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 보다 저장공간은 더 많이 차지합니다.