통신/MQTT

MQTT 알아보자 - mosquitto

찬영_00 2025. 3. 19. 21:29

요즘 긴 시간의 출퇴근으로 글 작성을 잘 못한다..

어서 자취를 알아봐야겠다.

 

여튼 오늘은 MQTT에 대해 조금 알아보려한다.

 

MQTT란?

먼저 MQTT란 무엇일까?

MQTT(Message Queuing Telemetry Transport)는 IoT(사물 인터넷) 및 임베디드 시스템에서 널리 사용되는 경량 메시지 프로토콜이다.

제한된 대역폭과 낮은 전력 소비가 중요한 환경에서 효율적인 통신을 할 수 있도록 설계되었다.

 

MQTT는 다음과 같은 형식으로 메시지를 주고 받는다.

출처 : https://oak.go.kr/central/journallist/journaldetail.do?article_seq=17432

 

위 통신 구조를 보면 MQTT는 클라이언트가 Pub(게시)하거나 Sub(구독)을 하여 Broker를 통해 메세지를 주고 받는 것을 알 수 있다.

 

어 뭔가 HTTP랑 비슷한거 같은데? 라고 생각하면 아래 표를 통해 차이점을 알아가자

특징 MQTT HTTP
통신 방식 Publish/Subscribe Request/Response
데이터 크기 작은 (경량)
연결 방식 지속적인 연결 요청할 때마다 연결
실시간성 높음 낮음
전력 소비 낮음 높음

 

따라서 MQTT는 저전력 및 실시간 데이터 전송이 필요한 IoT 시스템에 적합하고, HTTP는 일반적인 웹 애플리케이션과 브라우징에 적합함을 알 수 있다.

 

대충 알았으니 Pub하고 Sub가 머하는 놈이냐 하면

말그대로다.

pub은 클라이언트가 특정 토픽으로 데이터를 보내는 행위이고  sub는 클라이언트가 특정 토픽의 메세지를 받겠다고 요청하는 행위이다.

 

여기서 토픽이라는 이야기가 나오는데 토픽은 메시지가 전달되는 채널이라고 생각하면 된다.

 

이해가 잘 안되나?

조금 이해하기 편하게 예를 들면서 이야기 해보겠다.


Publish(게시)

게시자는 데이터가 담긴 메시지를 특정 토픽에 발행한다.

게시자는 구독자가 누구인지 알 필요가 없고, 오직 브로커만이 메시지를 받아서 구독자에게 전달한다.

 

 

 

신문사(게시자)가 특정 신문(토픽)을 배포하면, 그 신문을 구독한 사람들이 읽게 되는 것이다.

이때 신문사는 독자(구독자)가 몇 명인지, 어디에서 보는지 신경 쓰지 않고 신문을 발행한다.


Subscribe(구독)

구독자는 원하는 토픽을 등록하고, 브로커가 해당 토픽으로 메시지를 받으면 자동으로 전달받는다.

구독자는 게시자가 누구인지 몰라도 메시지를 받을 수 있다.

 

특정 신문(토픽)을 정기구독하면, 신문사가 새 소식을 배포할 때 자동으로 받아보는 것이다.

구독자는 신문을 직접 만들 필요 없이, 제공된 정보를 보기만 하면 된다.


Topic(토픽)

예를 들어 "home/temperature"라는 토픽이 있으면, 이 토픽은 집의 온도 데이터를 위한 통로 역할을 한다.

클라이언트는 특정 토픽을 구독(Subscribe) 하거나, 해당 토픽에 게시(Publish) 할 수 있다.

 

토픽은 라디오 방송국 주파수와 비슷하다.

방송국(게시자)이 특정 주파수(토픽)에서 방송을 하면, 해당 주파수를 맞춘 청취자(구독자)들이 같은 방송을 듣게 된다.


 

그럼 여기서 브로커는 뭐하는 친구냐~

 

브로커(Broker) -> 메시지를 중개하고, 해당 토픽을 구독(Subscribe)한 클라이언트들에게 전달

 

대강 이론은 이쯤해두고 우리는 브로커중 mosquitto를 활용해 간단한 실습을 해 볼 예정이다.

mosquitto를 쓰는 이유는 큰 이유 없다. 그냥 오픈소스이기도 하고 많이들 사용하니까?

 

여튼 mosquitto를 설치해보자

https://mosquitto.org/download/

 

Download

Source mosquitto-2.0.21.tar.gz (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Binary Installation The binary packages listed be

mosquitto.org

이곳에 들어가게 되면 

본인의 운영체제에 맞게 다운할 수 있다.

 

이렇게 다운하고 설치는 알아서 진행하자 (어려운거 아니자나)

하고 나서 작업관리자를 들어가보자

 

 

이렇게 활성화를 해주고

 

cmd창을 두개 열고, mosquitto가 있는 파일로 이동해주자 (C:\Program Files\mosquitto) 나는 저기에 설치했음

 

cmd에서 cd를 활용하여 해당 폴더로 두 개 다 이동해주고 다음 명령어를 통해 실습해보자

 

 

이렇게 간단하게 메시지를 주고 받아봤다.

이렇게 포스팅은 마치겠다

 

'통신 > MQTT' 카테고리의 다른 글

MQTT Explorer  (0) 2025.03.24