MQTT 이해:경량 IoT 메시징 프로토콜의 작동 방식
IoT 세계에서 원격 장치로 데이터를 전송하는 센서의 기능은 가볍고 낮은 대역폭의 게시/구독 프로토콜인 MQTT를 통해 구동되는 경우가 많습니다. 게시자, 구독자 또는 브로커의 용어가 낯설게 느껴진다면 이 가이드에서는 메시지가 전달되는 방식, MQTT가 효율적인 이유, 실시간으로 실험할 수 있는 방법을 명확히 설명합니다.
MQTT란 무엇인가요?
MQTT(Message Queuing Telemetry Transport)는 장치가 인터넷이나 로컬 네트워크를 통해 정보를 교환할 수 있도록 하는 규칙 집합입니다. 저전력, 제한된 대역폭 환경을 위해 설계된 MQTT는 작은 메시지와 이벤트 중심 접근 방식을 사용하여 장치가 새로운 정보를 공유하거나 수신해야 할 때만 데이터를 전송합니다.
각 기기는 게시자 역할을 할 수 있습니다. (데이터 전송) 및 구독자 (데이터 수신). 많은 프로토콜과 달리 MQTT는 장치 간에 메시지를 직접 라우팅하지 않습니다. 대신 모든 통신은 브로커라고 알려진 중앙 개체를 통해 전달됩니다. .
MQTT 브로커 및 클라이언트
게시, 구독 또는 둘 다 여부에 관계없이 클라이언트는 브로커하고만 통신합니다. 브로커를 국경의 세관원으로 생각하십시오. 브로커는 들어오는 모든 패키지를 받아 올바른 목적지로 안내합니다. 이러한 분리는 네트워크 확장성을 유지하고 장치 설계를 단순화합니다.
인기 있는 브로커는 다음과 같습니다:
- 모기 – Windows, Linux 또는 macOS에서 로컬로 실행되는 무료 오픈 소스 브로커.
- EMQX – 고급 클러스터링 기능을 갖춘 오픈 소스 브로커.
- HiveMQ Cloud
와 같은 호스팅 옵션 및 CloudMQTT
관리형 클라우드 기반 브로커를 제공합니다.
MQTT 작동 방식
브로커는 모든 MQTT 작업의 중심에 있습니다. 게시자는 특정 주제에 대해 브로커에게 메시지를 보냅니다. . 주제는 슬래시로 구분된 계층적 문자열입니다(예:factory/line1/temperature). ). 해당 주제를 구독하는 클라이언트만 메시지를 받습니다.
주제 기반 라우팅의 의미는 다음과 같습니다.
- 게시자는 중복 없이 단일 메시지를 여러 구독자에게 보낼 수 있습니다.
- 구독자는 다양한 게시자의 여러 주제를 동시에 들을 수 있습니다.
- 구독되지 않은 클라이언트는 관련 없는 데이터를 수신하지 않으므로 대역폭이 절약됩니다.
예시
온도와 압력 센서가 있는 공장 현장을 생각해 보십시오. 두 센서 모두 서로 다른 주제에 게시됩니다.
- 온도 주제:
factory/line1/temperature – 페이로드:25.3 ℃
- 압력 주제:
factory/line1/pressure – 페이로드:18.7 psi
온도에만 관심이 있는 구독자1은 첫 번째 페이로드를 수신합니다. 압력에 초점을 맞춘 구독자 2는 두 번째를 수신합니다. 브로커가 자동으로 라우팅을 처리합니다.


일반적인 게시 명령
로컬 Mosquitto 브로커에서는 명령줄을 통해 메시지를 게시할 수 있습니다:
mosquitto_pub -h localhost -t retain/topic -m "Take a hike"
여기:
-h localhost – 브로커의 주소.
-t retain/topic – 주제 이름.
-m "Take a hike" – 구독한 모든 클라이언트가 받게 될 페이로드.
MQTT Explorer
와 같은 그래픽 클라이언트 및 MQTTX
게시 및 구독을 위한 사용자 친화적인 인터페이스를 제공하므로 초보자도 쉽게 실험할 수 있습니다.
마무리
브로커와 토픽으로 구동되는 MQTT의 게시/구독 모델은 IoT 장치가 통신할 수 있는 간단하고 효율적이며 확장 가능한 방법을 제공합니다. 이러한 핵심 개념을 익히면 제조, 스마트 홈 등 다양한 분야에서 강력한 애플리케이션을 활용할 수 있습니다.