일대다 메시지 배포 및 애플리케이션 분리 제공
페이로드 없이도 유의미한 메시지 전송 가능
| QoS 수준 | 설명 | 오버헤드 발생 정도 |
|---|---|---|
| QoS 0 (At most once) | 한 번만 전송 (전송 확인 없음) | ✅ 최소 (낮음) |
| QoS 1 (At least once) | 최소 1회 전달 | 🔼 중간 |
| QoS 2 (Exaclty once) | 정확히 1회 전달 (4번 메시지 왕복) | 🔴 높음 (오버헤드 큼) |
메시지 전송 성공률 & 오버헤드 증가 At most once > At least once > Exaclty once
QoS 조정하는 게 4, 5번을 실현하는 방법 중 하나
이해 관계자 EX) MQTT 브로커, 다른 MQTT 클라이언트 (구독자/퍼블리셔) → MQTT 브로커의 해당 토픽에 Last Will 메시지를 보내 상위 시스템에 알릴 수 있음

성공적으로 결과가 나온 것을 알 수 있습니다 여기서 더 나아가 캡스톤에 사용하게 될 Node-RED를 응용해 보겠습니다

name: 이름 입력 (저는 모스키토로 했습니다)
server: localhost (로컬의 1883 포트 사용 중)
port: 1883
client ID: 클라이언트 아이디로 중복이 없도록 유일한 임의의 문자로 설정 (저는 다음 페이지에 나올 토픽과 동일하게 했지만 다르게 하는 게 일반적입니다 ㅎ)
UPDATE 버튼 클릭 시 아래 화면으로 이동하게 됩니다 위의 client ID로 Topic을 작성해 줬습니다

⭐⭐ topic은 나만이 알 수 있는 유니크한 토픽명으로 작성해야 합니다 (기존 topic과 겹치지 않도록)

DONE 클릭 후 배포

inject 노드 실행


이어서 CLI 화면과 노드 레드 간 TEST도 진행해 봤습니다

CLI 화면1
C:\Program Files\mosquitto>mosquitto_sub -t node-red-study-test-khk
Sending MQTT messages using node-red
CLI 화면2 (참고용)
16 Mar 17:58:33 - [info][mqtt-broker:Mosquittio] Connected to broker: node-red-study-test-khk@mqtt://localhost:1883
C:\Program Files\mosquitto>mosquitto_pub -t node-red-study-test-khk -m "Hello from Mosquitto CLI"

더 공부해야 할 것
ESP32의 센서 데이터를 MQTT 프로토콜을 통해 브로커에 전송시키는 실습
ESP32가 데이터를 mosquitto_pub로 전송하려면? ESP32는 mqtt_publish 함수를 사용하여 MQTT 브로커에 데이터를 게시함
Node-RED는 mqtt in 노드를 사용하여 해당 토픽을 구독 (센서 데이터를 수신하여 처리)