핵심 인사이트 (3줄 요약)
- 본질: MQTT QoS(Quality of Service)는 메시지 전달 보장 수준을 3단계(0: 최대 1회, 1: 최소 1회, 2: 정확히 1회)로 정의하며, Publisher→Broker와 Broker→Subscriber 각각에 독립적으로 설정된다.
- 가치: 온도 센서 데이터(QoS 0, 유실 허용)와 결제 명령(QoS 2, 정확히 1회 필수)처럼, 데이터의 중요도에 따라 전달 보장 수준을 선택하여 대역폭·배터리·신뢰성의 균형을 맞춘다.
- 판단 포인트: QoS 2는 **4-way 핸드셰이크(PUBLISH→PUBREC→PUBREL→PUBCOMP)**로 오버헤드가 크므로, 대부분의 IoT 시나리오는 **QoS 1(중복 허용, 유실 방지)**이 실용적 최적점이다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ QoS 레벨별 핸드셰이크 │
├───────────────────────────────────────────────────────┤
│ [QoS 0 — Fire and Forget] │
│ Pub ──PUBLISH──▶ Broker (끝, 확인 없음) │
│ │
│ [QoS 1 — At Least Once] │
│ Pub ──PUBLISH──▶ Broker ──PUBACK──▶ Pub │
│ (PUBACK 없으면 재전송 → 중복 가능) │
│ │
│ [QoS 2 — Exactly Once] │
│ Pub ──PUBLISH──▶ Broker ──PUBREC──▶ Pub │
│ Pub ──PUBREL──▶ Broker ──PUBCOMP──▶ Pub │
│ (4-way 핸드셰이크, 정확히 1회 보장) │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: QoS 0은 엽서(도착 보장 없음), QoS 1은 등기우편(배달 확인, 중복 가능), QoS 2는 내용증명(정확히 1회, 증거 남김)이다.
Ⅱ. 아키텍처 및 핵심 원리
QoS 레벨 비교
| QoS | 보장 | 핸드셰이크 | 오버헤드 | 적합 |
| 0 | 최대 1회 (유실 가능) | 1회 | 최소 | 센서 주기 데이터 |
| 1 | 최소 1회 (중복 가능) | 2회 | 중간 | 대부분 IoT |
| 2 | 정확히 1회 | 4회 | 최대 | 결제·제어 명령 |
멱등성(Idempotency) 설계
QoS 1은 중복 전달이 가능하므로, 수신 측에서 **메시지 ID로 중복 필터링(멱등 처리)**하면 QoS 2의 효과를 얻을 수 있다.
- 📢 섹션 요약 비유: QoS 1 + 멱등성은 "같은 택배가 2번 와도 1번만 수령처리"하는 것이다. QoS 2보다 가볍게 같은 효과를 낸다.
Ⅲ. 비교 및 연결
| 비교 | QoS 0 | QoS 1 | QoS 2 |
| 전력 | 최소 | 중간 | 높음 |
| 대역폭 | 최소 | 중간 | 높음 |
| 신뢰성 | 낮음 | 높음 | 최고 |
Ⅳ. 실무 적용 및 기술사 판단
시나리오별 QoS 선택
- 온도/습도 센서: QoS 0 (5초마다 전송, 1개 유실 무관).
- 화재 알람: QoS 1 (반드시 도달, 중복 OK).
- 스마트 도어락 제어: QoS 2 (정확히 1회 열림/닫힘).
Ⅴ. 기대효과 및 결론
MQTT QoS는 IoT의 "신뢰성 vs 효율" 트레이드오프를 3단계로 단순화한 우아한 설계이며, 실무에서는 QoS 1 + 멱등 처리가 가장 실용적인 조합이다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| QoS 0 | Fire and Forget, 최저 오버헤드 |
| QoS 1 | At Least Once, 실용적 최적점 |
| QoS 2 | Exactly Once, 4-way 핸드셰이크 |
| 멱등성 | QoS 1 중복을 안전하게 처리하는 설계 |
| MQTT 5.0 | Shared Subscription 등 QoS 개선 |
📈 관련 키워드 및 발전 흐름도
[MQTT v3.1 (1999) — QoS 0/1/2 정의]
│
▼
[MQTT 3.1.1 (2014, OASIS) — 표준화]
│
▼
[QoS 1 + 멱등 패턴 (실무 Best Practice)]
│
▼
[MQTT 5.0 (2019) — Shared Subscription]
│
▼
[현재: MQTT over QUIC — 전송 계층 신뢰성 강화]
👶 어린이를 위한 3줄 비유 설명
- QoS 0은 엽서예요. 보내면 끝이고 도착할지 모르지만 가장 가벼워요.
- QoS 1은 등기우편이에요. 배달 확인을 받지만 같은 편지가 2번 올 수도 있어요.
- QoS 2는 내용증명이에요. 정확히 1번만 도착하지만 절차가 복잡해요!