MongoDB(몽고DB)는 JSON과 BSON 형식을 모두 지원합니다.
JSON은 JavaScript Object Notation의 약어로, 가볍고 사람이 읽고 쓰기 쉬운 형식입니다.
BSON은 Binary JSON의 약어로, JSON과 호환되며 이진 형식으로 인코딩된 JSON입니다. BSON은 더 작은 크기로 데이터를 저장하며, 더 빠른 직렬화 및 역직렬화를 제공합니다.
JSON과 BSON의 차이점은 데이터 저장 방식과 자료형 지원입니다.
JSON은 텍스트 형식으로 데이터를 저장하며, 기본 데이터 타입으로는 문자열, 숫자, 부울, 배열, 객체, null이 있습니다.
BSON은 이진 데이터 형식으로 데이터를 저장하며, JSON과 비슷한 자료형을 지원하면서 추가로 날짜, 바이너리, 정규식, 타임스탬프, 64비트 정수 등을 지원합니다.
예를 들어, 다음은 JSON과 BSON 형식으로 같은 문서를 표현한 예시입니다.
//JSON
{
"name": "Alice",
"age": 30,
"email": "alice@example.com"
}
이를 BSON 으로 표현하면 아래와 같습니다.
// BSON 편의상 보기 쉽게 3줄로 나눴습니다.
\x1B\x00\x00\x00\x02name\x00\x05\x00\x00\x00Alice\
x00\x10age\x00\x1E\x00\x00\
x00\x00email\x00\x14\x00\x00\x00alice@example.com\x00\x00
위 예시에서 볼 수 있듯이, BSON은 이진 형식으로 인코딩되어 있으며, 각 필드에 대한 데이터 타입 정보를 포함합니다. 몽고DB는 BSON을 사용하여 데이터를 저장하며, 드라이버는 BSON을 직렬화하고 역직렬화하여 데이터를 처리합니다.
JSON과 BSON은 몽고DB에서 데이터를 저장하고 전송하는 데 사용되는 형식입니다.
각각의 형식은 장단점이 있으며, 이들을 잘 이해하고 사용하는 것이 중요합니다.
JSON의 장점:
- 가볍고 사람이 읽고 쓰기 쉬운 텍스트 형식입니다.
- 대부분의 언어와 프레임워크에서 지원됩니다.
- 네트워크 전송 등에 적합합니다.
JSON의 단점:
- 이진 데이터를 표현할 수 없습니다.
- 큰 데이터를 다루기에는 효율적이지 않습니다.
BSON의 장점:
- JSON보다 작은 크기로 데이터를 저장할 수 있습니다.
- 이진 데이터를 표현할 수 있습니다.
- 더 빠른 직렬화 및 역직렬화를 제공합니다.
BSON의 단점:
- JSON보다 사람이 읽고 쓰기 어려운 형식입니다.
- 일부 언어나 프레임워크에서 지원되지 않을 수 있습니다.
MongoDB(몽고DB)에서는 BSON을 주로 사용합니다. 이유는 BSON이 JSON보다 더 많은 데이터 타입을 지원하며, 더 작은 크기로 데이터를 저장할 수 있기 때문입니다. 또한, BSON은 MongoDB(몽고DB)의 쿼리 처리와 인덱싱에 더 적합합니다.
그러나 BSON이 더 빠르다는 것은 항상 그렇지는 않습니다. 적은 양의 데이터를 다룰 때는 JSON이 더 적합할 수 있습니다. 또한, 일부 언어나 프레임워크에서는 JSON을 기본으로 사용하므로, 이 경우에는 JSON을 사용하는 것이 더 편리할 수 있습니다.
*따라서, 데이터의 특성과 사용하는 언어, 프레임워크 등을 고려하여 JSON과 BSON을 적절히 선택하여 사용하는 것이 중요합니다.
'데이터베이스(DB)' 카테고리의 다른 글
DB 용어정리(HA, RAC, TTL, Cluster) (0) | 2023.12.26 |
---|---|
NoSQL과 RDBMS 그 차이 (0) | 2023.04.13 |
몽고DB(MongoDB)란? (0) | 2023.04.12 |
데이터베이스 스키마란? (0) | 2023.04.10 |
Redis란? (0) | 2023.03.20 |