Offcanvas

IoT / 통신|네트워크

“표준으로 자리 잡을 것” IoT 통신 프로토콜 MQTT 살펴보기

2022.12.21 Georg Held  |  InfoWorld
수십억 개의 커넥티드 기기가 네트워크와 클라우드 플랫폼 간에 효율적으로 통신하고 데이터를 이동해야 한다. ‘MQTT(Message Queuing Telemetry Transport)’가 표준 프로토콜로 자리 잡을 이유는 다음과 같다. 

사물인터넷(IoT)이 계속 확대되고 있다. 트랜스포마 인사이트(Transforma Insights)는 2022년 전 세계 커넥티드 기기의 수가 131억 개를 넘을 것으로 예측했다. 이 방대한 수의 기기로 인해 네트워크와 클라우드 플랫폼 간 [효율적으로] 통신하고 데이터를 이동해야 할 필요성이 대두됐으며, 여기가 바로 IoT 프로토콜이 작동하는 곳이다. 

MQTT 프로토콜은 1999년 앤디 스탠포드 클라크와 알렌 니퍼가 위성 네트워크로 석유 및 가스 파이프라인을 모니터링하기 위해 발명했다. 그리고 지난 몇 년 동안 [이는] 사실상 IoT 메시징의 표준이 됐다. MQTT의 기본 개념, IoT 데이터 이동에서의 이점, MQTT 사용 방법 등을 살펴본다. 
 
ⓒGetty Images Bank

MQTT 발행/구독(Pub-Sub) 아키텍처
OASIS와 ISO에 의해 표준화된 MQTT 프로토콜은 인터넷을 통해 기기를 연결하는 확장 가능하고 안정적인 방법을 제공한다. MQTT는 작은 코드 풋프린트와 최소 네트워크 대역폭으로 원격 기기를 연결하는 데 이상적인 초경량 발행/구독 메시징 프로토콜이다. MQTT의 분리된 아키텍처는 다양한 애플리케이션과 장비를 통합하고 연결하는 복잡성을 줄인다. 자동차, 제조, 통신, 석유 및 가스 등 여러 산업에서 MQTT를 사용하고 있다. 
 
MQTT 발행/구독 아키텍처 ⓒHiveMQ

위 그림에서 확인할 수 있는 발행/구독 아키텍처는 발행자(메시지를 보내는 클라이언트)와 구독자(메시지를 받는 클라이언트)를 분리한다. 발행자와 구독자는 서로 직접 연락하지 않는다. 대신 MQTT 브로커가 연결을 처리하여 모든 수신 메시지를 적절하게 필터링하고 구독자에게 배포한다. 각 MQTT 메시지에는 주제가 포함된다. MQTT 클라이언트는 수신하려는 주제를 구독하고, MQTT 브로커는 메시지를 적절한 클라이언트에 발송한다. 

MQTT 브로커는 연결이 끊어졌을 때 MQTT 클라이언트에 발송할 수 없는 메시지를 버퍼링할 수 있다. 이는 네트워크 연결이 불안정한 상황에서 매우 유용하다. 신뢰할 수 있는 메시지 전달을 지원하기 위해 이 프로토콜은 3가지 유형의 서비스 품질(QoS) 메시지를 지원한다. 
 

0 – 최대 한 번
1 – 적어도 한 번
2 – 정확히 한 번


QoS는 클라이언트에게 네트워크 안정성 및 애플리케이션 로직과 일치하는 서비스 수준을 선택할 권한을 부여한다. 

MQTT는 클라이언트와 브로커 간 영구 세션을 허용하여 네트워크 연결이 끊어져도 세션을 계속할 수 있다. MQTT는 네트워크 연결이 없는 동안 메시징 정보를 공유하기 때문에 시스템이 다시 연결되면 클라이언트-브로커 세션을 기억한다. 이러한 수준의 안정성은 신뢰할 수 없는 셀룰러 네트워크에서 사용할 때 HTTP보다 MQTT 프로토콜을 더 효율적으로 만드는 핵심 기능이다. 

수만 개의 커넥티드 기기와 애플리케이션에서 대량의 데이터를 이동하려면 이러한 목적에 맞는 메시징 프로토콜이 필요하다. 클라크와 니퍼는 신뢰할 수 없는 연결로 원격 장비를 모니터링해야 하는 필요성을 충족하기 위해 MQTT를 개발했다. 이 아키텍처는 IoT 데이터 이동에 매우 적합하다. 

MQTT의 기술 및 비즈니스적 이점
기술 아키텍트와 소프트웨어 개발자가 MQTT를 선택하는 그리고 IoT 플랫폼이 [플랫폼에] 데이터를 가져오는 이상적인 방법으로 이 프로토콜을 지원하고 홍보하는 이유는 다음과 같다. 우선 기술적 이점을 살펴보도록 하자. 
 
가볍고 효율적: 예외적으로 MQTT 보고서와 메시지 헤더가 작아 클라이언트 및 네트워크 대역폭에 필요한 리소스를 최소화한다.  

양방향: MQTT는 기기에서 클라우드로, 클라우드에서 기기로 메시지를 전송할 수 있게 해주며, 이를 통해 사물 그룹에 메시지를 브로드캐스팅할 수 있다.

신뢰할 수 없는 네트워크 지원: MQTT의 영구 세션 지원은 신뢰할 수 없는 네트워크에서 필요한 재연결 시간을 줄인다. 

확장성: MQTT는 수백만 개의 IoT 기기를 동시에 연결하도록 확장할 수 있다. 

보안 지원: MQTT를 사용하면 TLS(전송 보안 계층)를 사용하여 메시지를 쉽게 암호화하고, 오쓰(OAuth) 등의 최신 인증 프로토콜을 활용하여 클라이언트를 인증할 수 있다. 

신뢰성: 발행/구독 기능과 메시지 대기열 기능은 MQTT를 통한 데이터 손실이 없다는 것을 의미한다. 또 MQTT는 정의된 3가지 서비스 품질 수준을 통해 신뢰할 수 있는 메시지 전달도 지원한다. 

MQTT의 이러한 기술적 이점은 여러 비즈니스 이점으로 이어진다. 데이터 수집 및 통신을 디지털 방식으로 전환하려는 모든 기업에게 MQTT는 좋은 선택이다. 비즈니스적 이점은 아래와 같다. 
 
네트워크 비용 감소: HTTP 및 OPC UA 프로토콜은 메시지 크기가 크고, 데이터가 변경되지 않아도 설정된 간격으로 데이터를 수집하기 위해 요청/응답(poll/response)을 사용한다. MQTT 메시지의 작은 크기와 예외 보고서(reports by exception)는 네트워크 대역폭 비용을 절약할 수 있다. 

• 고객 경험 향상: MQTT는 안정성에 중점을 두고 영구 세션을 지원해 고객 경험을 향상시킨다. BMW의 차량 공유 서비스를 예로 들자면, SMM/HTTP를 사용해 메시지를 전송하면 최대 30초를 기다려야 차 문이 열렸다. 해당 서비스는 MQTT를 통해 이 문제를 해결했다. 

데이터 손실 비용 절감: 데이터 손실은 주요 이벤트 누락, 부정확한 데이터 수집 등 여러 방식으로 비즈니스에 부정적인 영향을 미칠 수 있다(데이터 손실이 고객에게 영향을 미치는 경우 수익 손실까지 발생할 수 있다). MQTT 메시지 대기열은 네트워크가 다시 연결될 때 데이터를 전송하기 때문에 데이터 손실과 관련된 비용을 줄인다. 

시장 출시 시간 단축: MQTT 아키텍처의 클라이언트/브로커 관계는 쉽고 빠른 릴리즈를 보장하며, 이는 제품을 빠르게 출시할 수 있다는 의미다. 기업이 MQTT 브로커를 시스템 허브로 설정하면 언제든지 최소한의 리소스로 새 애플리케이션이나 클라이언트를 추가하거나 빠르게 업데이트할 수 있다. 

MQTT 시작하기
OASIS MQTT 기술 위원회(The OASIS MQTT Technical Committee)는 2가지 버전의 사양을 관리한다(MQTT 3.1.1과 MQTT 5). 대부분의 상용 MQTT 브로커는 MQTT 5를 지원하지만 많은 IoT 관리형 클라우드 서비스는 MQTT 3.1.1만 지원한다. [버전 5는] 강력한 시스템과 클라우드 네이티브 확장성에 중점을 둔 새로운 기능을 제공하기 때문에 새로운 IoT 배포는 버전 5를 사용하는 게 좋다. 

MQTT 5는 MQTT 프로토콜의 중요한 업데이트다. MQTT 사용자 피드백에 따라 MQTT 5는 최신 IoT 애플리케이션에 필요한 기능을 추가했다. 이러한 새로운 기능은 클라우드에 배포된 애플리케이션, 미션 크리티컬 메시징을 구축하기 위한 견고성과 안정적인 오류 처리가 필요한 애플리케이션, 기존 컴퓨팅 인프라에 MQTT 메시지를 쉽게 통합하려는 애플리케이션 개발자에 적합하다.  

앞으로 몇 년 동안 제조, 자동차, 핵심 인프라, 물류, 스마트 도시를 비롯한 모든 산업에서 MQTT 채택이 크게 증가하리라 예상된다. MQTT는 모든 IoT의 표준이 되기 직전이다. 

한편 많은 오픈소스 MQTT 클라이언트 및 브로커가 다양한 프로그래밍 언어로 제공된다. 이곳(mqtt.org)에서 자세한 내용을 확인할 수 있다. 기본 사항을 이해한 후 MQTT를 시작하는 가장 좋은 방법은 실제 구축 사례를 검토하는 것이다. 이 깃허브 리포지토리에서 몇 가지 예를 찾을 수 있다.

* Georg Held는 HiveMQ의 제품 개발 부문 책임자다. ciokr@idg.co.kr
 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.