Menu

문서정보

목차

MQTT

MQTT는 경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜이다. M2M(machine-to-machine)와 IoT(Internet of things)에서 사용하는 걸 목적으로 하는 만큼, 낮은 전력으로도 사용할 수 있도록 설계됐다. 저전력, 소규모 기기들 간의 통신이 필요한 IoT에서 주목하는 프로토콜이다. OASIS는 MQTT 3.3.1 를 IoT에서의 표준 프로토콜로 채택했다.

지금 나는 IoT관련 일을 하고 있으며, 로컬과 원격 모두에서 사용할 수 있는 경량의 통신 프로토콜로 MQTT를 고려하고 있다. 예전이라면 직접 만들어서 사용을 했겠지만 IoT가 점차 확산되는 시점에서, 표준(혹은 표준에 가까운, 혹은 채택될 가능성이 높은) 프로토콜을 선택해야 할 필요가 있었다.

IoT에서 선택 가능성이 있는 프로토콜로는 MQTT, CoAP, XMPP정돌를 꼽을 수 있겠다. 각각의 특징을 정리했다.

MQTT
MQTT-S
CoAP
XMPP
  • 신뢰하기 힘든 네트워크에서의 쌍방향 커뮤니케이션(Tow-way communications)
  • Asynchronous
  • 배터리 기반의 낮은 전력 소비가 필요한 장치
  • 많은 시간을 휴면하는 장치들. 이 경우 CoAP가 더 적합할 수 있다.
  • MQTT와 유사하다. 휴면 시간이 긴 장치를(센서 네트워크 등) 위한 프로토콜이다.
  • MQTT에 비해서 확장이 유연하다. UDP 프로토콜의 특성에 기인한다.
  • MQTT-S와 비슷한 목적으로 사용할 수 있다.
  • UDP 프로토콜을 사용한다.
  • HTTP기반. REST 아키텍처 적용이 용이하다.
  • Observer 패턴 사용. 롱폴링 없이 응답을 받을 수 있다.
  • 강력한 보안
  • 대량의 메시지를 처리 하기에 적합하다.
  • 태생이 메신저를 위한 프로토콜로 다른 프로토콜에 비해서 무겁다.

문서

참고