MQTT(Message Queuing Telemetry Transport)는 경량 메시지 프로토콜로서, 주로 컴퓨터 네트워크에서 IoT(Internet of Things) 장치와 응용 프로그램 간에 데이터를 효율적으로 전송하기 위해 사용됩니다.
MQTT는 오늘날 IoT 시스템, 센서 네트워크, 모니터링 및 제어 응용 프로그램 등에서 데이터를 신속하고 효율적으로 전달하기 위해 널리 사용되는 프로토콜 중 하나입니다.
MQTT는 다음과 같은 특징을 갖고 있습니다.
1. 경량 프로토콜: MQTT는 메시지 크기가 작고, 연결 설정 및 유지 비용이 적은 경량 프로토콜입니다.
그러므로 리소스가 제한된 IoT 디바이스에서도 효율적으로 사용될 수 있습니다.
2. Publish/Subscribe 패턴: MQTT는 발행자(Publisher)와 구독자(Subscriber) 간의 패턴을 사용합니다.
발행자는 특정 주제(Topic)에 메시지를 발행하고, 관심 있는 구독자는 해당 주제를 구독하여 해당 메시지를 수신합니다.
이러한 패턴은 다수의 디바이스 간에 데이터를 분산하고 조직하는 데 유용합니다.
3. 서비스 품질(QoS) 레벨: MQTT는 메시지 전달의 품질을 조절하기 위해 세 가지 서비스 품질 레벨을 제공합니다.
이로써 데이터 손실을 최소화하고 메시지 전달 신뢰성을 제어할 수 있습니다.
- QoS 0: 메시지 전달 보장 없음
- QoS 1: 메시지 최소한 한 번 전달 보장
- QoS 2: 메시지 정확히 한 번 전달 보장
※ 참고: 솔내시스템의 MQTT 클라이언트는 QoS 레벨 0과 1을 지원합니다.
4. 유연한 토픽 구조: MQTT에서는 주제(Topic)라고 하는 메시지의 주소 체계를 사용하여 메시지를 특정합니다.
이 주제 구조를 사용하면 데이터를 논리적으로 그룹화하고 관리하기가 용이합니다.
5. 지속적인 연결: MQTT 클라이언트는 브로커(Broker)와 연결을 유지하며 메시지를 주고받을 수 있습니다.
이 연결은 TCP/IP 기반으로 작동하며, 필요에 따라 암호화 및 인증을 지원합니다.
6. 크로스 플랫폼 호환성: MQTT는 다양한 프로그래밍 언어와 플랫폼에서 구현되어 있으며, 따라서 다양한 환경에서 사용할 수 있습니다.