-
MQTT 프로토콜 알아보자! (Http, gRPC 비교)Web 2025. 5. 2. 16:22728x90반응형
MQTT란 무엇인가?
MQTT(Message Queuing Telemetry Transport)는 경량 메시지 전송 프로토콜로, 저전력 장치와 제한된 네트워크 환경을 고려해 설계되었습니다. 주로 사물인터넷(IoT) 기기 간 통신에 많이 사용되며, 발행(Publish)과 구독(Subscribe) 방식의 구조를 가집니다.
MQTT의 특징
- TCP/IP 기반 통신
- 브로커(Broker)를 통한 Pub/Sub 구조
- 낮은 대역폭, 저전력 환경에 최적화
- QoS(Quality of Service)를 통한 신뢰성 제어
Request/Response vs Publish/Subscribe 통신 방식의 차이
프로토콜을 이해하려면 먼저 각각의 통신 방식 차이를 아는 것이 중요합니다. MQTT는 Pub/Sub 방식, HTTP와 gRPC는 기본적으로 Request/Response 방식을 사용합니다.
🔁 Request / Response 방식
- 1:1 구조 — 클라이언트가 요청을 보내고 서버가 응답함
- 직접 통신 — 클라이언트와 서버가 직접 연결
- HTTP는 보통 단발성 연결, gRPC는 지속 연결 가능 (HTTP/2 기반)
- 예: 웹 브라우저의 HTTP 요청, REST API 호출
📡 Publish / Subscribe 방식
- 1:N 구조 — 발행된 메시지를 여러 구독자가 수신 가능
- 브로커를 통해 간접 통신
- 지속 연결 유지 (MQTT는 항상 연결 상태 유지)
- 클라이언트 간 결합도가 낮아 확장성과 유연성이 높음
✅ 핵심 비교
항목 Request / Response Publish / Subscribe 통신 구조 직접 통신 (1:1) 브로커 기반 간접 통신 (1:N 가능) 연결 방식 단발성(Stateless) 또는 지속 (gRPC) 항상 연결 유지 (Persistent) 결합도 높음 (요청자와 응답자 간) 낮음 (브로커를 통해 연결) 적합한 용도 웹 API, 명령 실행 IoT, 실시간 이벤트, 알림 시스템 MQTT vs HTTP vs gRPC
구분 MQTT HTTP gRPC 통신 방식 Publish / Subscribe Request / Response Request / Response (HTTP/2) 연결 유지 지속 연결 보통 단발성 지속 연결 (Streaming 지원) 전송 경량성 매우 경량 헤더 부담 있음 Protobuf 기반으로 경량 사용 용도 IoT, 실시간 메시징 웹 API, 브라우저 요청 마이크로서비스 간 통신 MQTT의 QoS(Quality of Service) 레벨 설명
MQTT는 메시지의 전송 품질을 보장하기 위해 세 가지 QoS 레벨을 제공합니다.
QoS 0 - At most once (최대 한 번)
- 메시지는 한 번 전송되며 손실 가능
- 가장 빠르지만 신뢰도는 낮음
QoS 1 - At least once (최소 한 번)
- 메시지가 최소 한 번은 도달함
- 중복 수신 가능
QoS 2 - Exactly once (정확히 한 번)
- 중복 없이 정확히 한 번만 전송됨
- 가장 높은 신뢰도, 처리 비용은 가장 큼
마무리
각 프로토콜은 목적과 사용 환경에 따라 강점이 다릅니다. MQTT는 IoT와 같이 네트워크 제약이 큰 환경에서 적합하며, HTTP는 브라우저 기반 서비스에, gRPC는 마이크로서비스 통신에 적합합니다. 또한, 통신 구조와 QoS 설정 방식에 따라 성능과 신뢰성에 큰 차이가 생기므로, 프로젝트 특성에 맞는 선택이 중요합니다.
728x90반응형'Web' 카테고리의 다른 글
SSR vs CSR 구분 및 개발 방법을 알아보자! (0) 2025.04.29 Socket (소켓) 에 대해 알아보고, Websocket (웹소켓) 과 구분해보자! (1) 2025.04.28 쿠키 사용 시 CSRF 취약점 대응을 위한 설명! (1) 2025.04.25 CSRF 취약점과 방어 방법에 대해 알아보자! (0) 2025.04.25 무료 WYSIWYG(위지윅) 에디터 알아보자! (0) 2025.04.25