MQTT 프로토콜이란?
MQTT(Message Queuing Telemetry Transport)는 경량 메시지 전송 프로토콜입니다. 주로 IoT 환경에서 데이터를 주고 받기 위해 사용하는 프로토콜입니다. 저전력, 제한적인 네트워크에서 효율적이기 때문입니다. 반대로 대용량 데이터 처리의 경우 비효율적일 수 있습니다. Publish/Subscribe 모델을 기반으로 하여 메시지 브로커가 publish와 subrscribe를 관리하는(메시지를 중개하는) 역할을 담당합니다.
MQTT 특징
- 경량 프로토콜
MQTT는 헤더가 매우 작습니다. 따라서 대역폭이 제한된 네트워크에서도 원활히 작동할 수 있다는 장점이 있습니다. - Pub/Sub 구조
발행, 구독 모델을 사용합니다. 발행자가 특정 주제(topic)로 메시지를 발행하게 되면, 해당 주제를 구독하고 있던 구독자들은 메시지를 수신합니다. 이를 통해 다수의 장치가 효과적으로 메시지를 주고 받을 수 있습니다. - QoS(Quality of Service) 지원
데이터 전송 신뢰성을 보장하기 위해 3 가지 품질 수준을 제공합니다.- QoS 0
메시지를 한 번만 전송하는 방법.
발행자는 메시지 브로커로 특정 토픽에 메시지를 발행할 때 발행 성공 여부를 묻지 않습니다. 즉, 메시지가 분실되어도 신경쓰지 않습니다. - QoS 1
메시지를 적어도 한 번은 완벽한 전송이 이뤄지게 하는 방법.
이 경우에는 QoS 0에서 생길 수 있는 메시지 분실을 막습니다. 발행자는 메시지 브로커에게 메시지를 수신했다는 PUBACK 메시지를 받아야만 합니다. 하지만 이때 구독자가 중복된 메시지를 받을 수 있는 문제가 생깁니다. - QoS 2
메시지를 한 번만 완벽한 전송이 이뤄지게 하는 방법.
발행자가 메시지 브로커에게 PUBREC, PUBREL, PUBCOMP 메시지를 받습니다. 이를 통해 정확히 한 번만 메시지를 전송하도록 보장합니다.
- QoS 0
'CS 상식 > 네트워크' 카테고리의 다른 글
HTTP 프로토콜에서 데이터 전송되는 방식 - JSON.stringfy(), JSON.parse() (0) | 2025.04.10 |
---|---|
웹 캐시(HTTP 캐시, 브라우저 캐시)를 이용해 성능 개선하기 (0) | 2024.11.01 |
REST API 정확하게 이해하고 개발하자 (0) | 2024.10.30 |