BSON과 MessagePack 의 차이점

MongoDB 나 Redis 를 접해본 적이 있다면 BSON이나 MessagePack 이란 스펙은 들어봤을 것이다.

둘 다 JSON 형식의 데이터 통신을 위해 태어난 일종의 형식이다.

JSON은 XML처럼 쌩 문자열 내용이기 때문에 부족한 점이 이만저만이 아닐 것이다. 특히 바이너리 통신에서 말이다.

이 둘의 특성을 알면 당신은 NoSQL DB의 원리를 반 이해한 것이고, JSON의 유용성과 다양성을 한층 더 배울 수 있을 것이다.

참고로 아직 기술표준(RFC 등 등재)는 안되 있지만, 둘다 인기 만점 매력있는 스펙인것만은 확실하다.

BSON (http://bsonspec.org/)

NoSQL DB인 MongoDB를 만든 10gen 사에서 제시.

기존 JSON 표준을 바이너리 표준으로 변환.

바이너리 데이터를 JSON 내용을 넣을 수 있는 이점

UUID 등의 새로운 타입이 추가되어 JSON의 인덱스 등의 검색 처리 용이.

BSON 데이터는 수정 가능.

RPC 미지원

문서(Document) 기반 DB에 탁월한 기능 및 성능 (MongoDB)

MessagePack(http://msgpack.org/)

일본 개발자 FURUHASHI Sadayuki 가 제시.

JSON을 직렬화하고 병렬화하는 방법 제시.

직렬화 데이터는 JSON 문자열 크기보다 더욱더 작으며, 작기 때문에 송수신 속도가 빠름.

RPC를 위한 표준이기 때문에 당연히 RPC 지원

키값(Key-Value) 기반 DB에 탁월한 기능 및 성능 (Redis)

BSON과 MessagePack의 공통점

JSON 데이터를 이진 데이터로 변환

이진 데이터 교환 가능해짐

BSON과 MessagePack의 차이점

BSON은 현상태에서 수정이 가능하나 MessagePack 은 불가능.

BSON보다 MessagePack 이 JSON 직렬화 결과 더 가벼움

RPC 통신에서 BSON보다 MessagePack이 우월

JAVA나 .NET으로 비유하자면?

BSON – 객체를 인터페이스로 캐스팅하여 관리

MessagePack – 아예 이진 데이터로 직렬화하거나 객체로 병렬화

composite / 2013년 5월 13일 / 미분류
태그:, , , , , , , ,

답글 남기기

Your email address will not be published / Required fields are marked *