Binary 데이터 표현 방식
데이터 발생→데이터 변형/직렬화→MQTT Payload에 적재하여 발송→변형되 데이터수신→데이터 표현/저장 의 과정으로 데이터가 전송되고 처리될 것이다.
이 과정에서 어플리케이션이 데이터를 변형, 표현/해석, 저장을 하기위해서는 통신하는 양측간에 데이터 포맷에 대한 약속이 필요하겠다.
Binary 데이텨 포맷은 비록 가독성은 최악이지만, 몇가지 측면에서 효율성이 높아 JSON과 마찬가지로 IOT에서 주요하게 사용되는 방식중 하나이다.
⊕ 가독성이 최악 → Parsing 알고리즘이 단순, 자원(네트워크, MCU)의 효율적 사용에 유리하다.
1. Binary 데이터 표현의 예
Binary 방식의 데이터 포맷은 실질적으로 대부분의 개발자들이 활용해본 경험이 있을 만큼 전통적이며, 자연스럽게 사용하고 있는 방식이다.
♦ 예로, MQTT를 통해 데이터 송수신 주체간에 아래와 같이 Binary 방식으로 데이터를 표현하기로 약속했다고 하자.
♦ 이 데이터는 MQTT Payload에 0x25, 0x??, 0X2A, 0X??, 0X?? ~ ~ ~ ~ ~ 0x4E, 0x??, 0x?? 으로 실려 보내질 것이다 → 총 14Byte 소요.
♦ 이 데이터를 수신한 어플리케이션은 메타정보로 데이터를 해석(경량한 Parsing)하고 값을 추출한 후 적절하게 처리(표현/저장)하면 되겠다.
2. Binary 방식의 대표사례(Protbuf)
Binary 방식의 데이터 포맷을 구현한 대표적인 사례로 Google에서 개발한 Protobuf(Protocol Buffer)을 예로 들 수 있겠다.
Probuf에서 제공한 개발환경 및 툴들을 사용하면 비교적 간단한 방식으로 Binary 포맷을 실제 응용에 활용할 수도 있을 것이다.