2분
전달 보장 등급
MQTT
전달 보장 등급
MQTT > MQTT
학습 목표
- QoS 세 등급의 차이를 설명한다
- 어느 값에 어느 등급이 맞는지 판단한다
얼마나 확실히 보낼 것인가
값을 보냈는데 안 닿을 수 있습니다. 그러면 다시 보내야 하는데, 다시 보내면 두 번 도착할 수도 있습니다. MQTT 는 이 문제를 세 등급으로 나눠 고르게 합니다.
QoS 0 은 한 번 보내고 확인하지 않습니다. 잃을 수 있는 대신 가장 빠릅니다. QoS 1 은 받았다는 응답이 올 때까지 보냅니다. 최소 한 번은 닿는 대신 두 번 올 수 있습니다. QoS 2 는 정확히 한 번을 보장하는데, 그만큼 주고받는 횟수가 많아 가장 느립니다.
무엇에 무엇을 쓰나
가르는 기준은 그 값을 놓쳤을 때와 두 번 받았을 때 무슨 일이 나는가입니다.
1초마다 오는 온도라면 한 번 놓쳐도 다음 값이 곧 옵니다. QoS 0 으로 충분합니다. 경보는 놓치면 안 되므로 QoS 1 이 맞고, 두 번 울리는 것은 놓치는 것보다 낫습니다. 과금이나 정산에 쓰는 기록은 두 번 세면 안 되므로 QoS 2 가 필요합니다.
⚠️ 모든 것을 QoS 2 로 두는 설계를 종종 봅니다. 확실해 보이지만 주고받는 횟수가 늘어 브로커가 먼저 힘들어집니다. 값마다 정하는 것이 맞습니다.
등급을 고르는 물음은 「확실한가」가 아니라 **「놓치면 무슨 일이 나는가」**입니다.