[임베디드] MQTT란 무엇인가?
MQTT(Message Queuing Telemetry Transport)는
IoT 기기 간 통신에 최적화된 경량 메시지 프로토콜이다.
센서에서 수집된 데이터를 서버로 전송할 때,
속도와 효율성, 연결 안정성을 모두 고려해 설계되었다.
1. MQTT의 기본 구조
MQTT는 Pub/Sub (Publish/Subscribe) 모델을 사용한다.
[구성 요소]
Publisher: 메시지를 전송하는 측 (센서, 게이트웨이 등)
Subscriber: 메시지를 수신하는 측 (서버, 대시보드 등)
Broker: 중간에서 메시지를 중계하는 서버
→ Publisher는 메시지를 특정 Topic에 발행
→ Subscriber는 원하는 Topic을 구독하여 수신
2. 동작 흐름 예시
2.1. 센서 게이트웨이 → iot/sensor/temp 토픽에 데이터 발행
2.2. 서버 백엔드가 iot/sensor/temp를 구독 중
2.3. 데이터 도착 즉시 수신하여 처리
[ 흐름 ] 센서 → MQTT publish → 브로커 → MQTT subscribe → 서버
---
3. MQTT의 장점
경량: TCP 기반의 매우 작은 오버헤드
비동기: 연결 여부와 무관하게 메시지 큐잉 가능
신뢰성: QoS 옵션을 통해 전송 보장
유연성: 수백~수천 개의 토픽 분기 가능
저전력: 센서와 배터리 기반 장비에 적합
---
4. QoS란?
MQTT는 메시지 전송 품질(Quality of Service)을 3단계로 관리한다.
QoS 0 – At most once (보장 없음, 빠름)
QoS 1 – At least once (중복 가능, 수신 보장)
QoS 2 – Exactly once (가장 안전, 가장 느림)
→ 센서 값 정도는 보통 QoS 0 또는 1을 사용함
---
5. 실제 토픽 설계 예시
iot/
├── sensor/
│ ├── temp
│ ├── humid
├── device/
│ ├── status
│ ├── config
예)
구독: iot/sensor/# → 모든 센서 데이터 수신
특정 장치: iot/device/1234/status
---
6. 내가 느낀 점
MQTT는 단순한 통신 프로토콜이 아니라,
IoT 시스템 전체를 연결하는 실시간 데이터 배달망이다.
토픽만 설계해두면 기기 추가/변경이 유연하고,
데이터 흐름이 분명하게 구조화된다.
1.7 참고자료
HiveMQ – MQTT Essentials
https://www.hivemq.com/mqtt-essentials/
MQTT Essentials: Your 2025 Learning Hub for IoT & IIoT Data Streaming
MQTT Essentials: Learn the core concepts of MQTT, its features and other essential information about the protocol for IoT and IIoT.
www.hivemq.com
EMQX MQTT Guide
https://www.emqx.com/en/mqtt
EMQX Blog – MQTT in 10 Minutes
https://www.emqx.com/en/blog/mqtt-protocol