본문 바로가기
IT writer

MQTT 브로커 Mosquitto 설명 및 쉬운 예시

by 헬로제이콥 2025. 12. 9.

 

💡 MQTT 브로커 Mosquitto 설명 및 쉬운 예시

1. MQTT란 무엇일까요?

MQTT (Message Queuing Telemetry Transport)는 인터넷에 연결된 기기들이 '메시지'를 주고받을 때 쓰는 아주 가볍고 빠른 통신 규칙입니다. 마치 '우체국'처럼 메시지를 안전하고 효율적으로 전달해 주는 역할을 해요.

  • 가벼운 이유: 인터넷 속도가 느리거나 배터리를 적게 쓰는 작은 기기(센서, 스마트 워치 등)에서도 잘 작동하도록 만들어졌기 때문입니다.

2. Mosquitto는 무엇일까요?

Mosquitto는 이 MQTT 통신 규칙을 실제로 사용할 수 있게 해주는 'MQTT 브로커 (Broker)' 프로그램 중 하나입니다.

MQTT 브로커의 역할: 메시지를 보내는 사람(발행자, Publisher)과 메시지를 받는 사람(구독자, Subscriber) 사이에서 메시지를 받아 정확한 받는 사람에게 전달해 주는 중앙 서버 역할을 합니다.

3.  쉬운 예시: '스마트 알림판 우체국'

Mosquitto를 우리 반에서 사용하는 '스마트 알림판 우체국'이라고 생각해 보세요.

역할 MQTT 전문 용어 예시 설명
우체국 (중앙 서버) Mosquitto (브로커) 메시지를 받아서 정확하게 전달해주는 중앙 관리 컴퓨터입니다.
메시지 보내는 기기 (센서) 발행자 (Publisher) 교실의 '온도 센서'가 현재 온도를 측정해서 Mosquitto(우체국)에 메시지를 보냅니다.
메시지 받는 기기 (앱) 구독자 (Subscriber) 선생님의 '스마트폰 앱'이 Mosquitto(우체국)에 "온도 메시지가 오면 저에게 주세요!"라고 신청해 둡니다.
메시지 내용 (온도 값) 메시지 (Message) "지금 교실 온도는 25도야"
메시지 받는 곳 이름 토픽 (Topic) "교실/온도" (메시지를 보낼 주소, 받는 사람이 신청할 이름)
  • 센서 값을 전달하는 과정:
    1. 교실 온도 센서(발행자)가 온도를 25도로 측정합니다.
    2. 센서는 Mosquitto(브로커)에게 "토픽: 교실/온도, 메시지: 25도"를 전달합니다.
    3. Mosquitto는 이 메시지를 받고, 미리 "토픽: 교실/온도"를 받고 싶다고 신청한 선생님의 스마트폰 앱(구독자)에 25도 메시지를 전달해 줍니다.
    4. 선생님은 앱에서 즉시 교실 온도를 확인할 수 있습니다.

이렇게 Mosquitto는 수많은 센서와 앱들이 효율적으로 정보를 주고받을 수 있도록 도와주는 아주 중요한 중앙 통신소 역할을 합니다.

4. 설치환경 & 프로그램 설명

1) 설치 환경

  •    Windows 10 x64
  •   프로세서 Intel(R) Core(TM) i5-9400F CPU @ 2.90GHz   2.90 GHz
  •   설치된 RAM 32.0GB

🦟 Mosquitto란 무엇인가요? (모스키토)

MosquittoMQTT(Message Queuing Telemetry Transport) 프로토콜을 구현한 오픈 소스 메시지 브로커(Message Broker) 소프트웨어입니다.

간단히 말해, Mosquitto발행자(Publisher)와 구독자(Subscriber) 사이에서 메시지를 중개하고 전달하는 중앙 서버 역할을 합니다.

  •  Mosquitto는 MQTT(Message Queuing Telemetry Transport) 프로토콜을 구현한 오픈 소스 메시지 브로커(Message Broker) 소프트웨어입니다.
  • 간단히 말해, Mosquitto는 발행자(Publisher)와 구독자(Subscriber) 사이에서 메시지를 중개하고 전달하는 중앙 서버 역할을 합니다.
  • 다운로드  * https://mosquitto.org/download/

🔐 OpenSSL이란 무엇인가요?

OpenSSLTLS/SSL(Transport Layer Security / Secure Sockets Layer) 프로토콜을 구현한 강력한 오픈 소스 소프트웨어 라이브러리입니다.

이 라이브러리는 웹 통신을 포함한 다양한 데이터 전송에서 암호화, 인증, 무결성을 보장하는 데 사용됩니다.

 다운로드  *   https://slproweb.com/products/Win32OpenSSL.html



5.  다운로드

    -  Mosquitto ( https://mosquitto.org/download/)

           다운로드  :  mosquitto-2.0.22-install-windows-x64.exe

 

 

 

     -OpenSSL  설치 ( https://slproweb.com/products/Win32OpenSSL.html )

    다운로드 :  버전에 맞는 최근자료를 받는다.     Win64OpenSSL_Light-3_6_0.exe

mostquitto 설치위치를 선택한다.  중요

 

 

  • 파일 복사: C:\Program Files\mosquitto\OpenSSL-Win64\bin
    • libcrypto-3-x64.dll
    • libssl-3-x64.dll
    • ossltest.dll
    • padlock.dll

  • 붙여넣기: C:\Program Files\mosquitto

 

3. 포트 확인

💻 netstat -an 명령은 무엇인가요?

netstat -an 명령어는 현재 컴퓨터의 네트워크 연결 상태(Network Status)와 라우팅 테이블을 보여주는 데 사용됩니다.

이 명령어는 특히 시스템 관리자가 네트워크 문제 진단, 서비스 포트 확인, 비정상적인 연결 탐지 등을 할 때 매우 유용합니다.


명령어 구성 요소 분석

명령어 부분 의미 역할
netstat Network Statistics의 약자 현재 시스템의 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 출력하는 주 명령입니다.
-a All의 약자 모든 연결(Established, Time Wait 등)뿐만 아니라 현재 리스닝(Listening) 상태에 있는 모든 포트를 표시합니다.
-n Numeric의 약자 주소와 포트 번호를 숫자 형식으로 표시합니다. (도메인 이름이나 서비스 이름으로 변환하지 않음)

📡 1883 포트 정보

1883 포트는 주로 MQTT(Message Queuing Telemetry Transport) 프로토콜에서 사용하는

기본 포트(Default Port)입니다.

이 포트는 암호화되지 않은(unencrypted) MQTT 통신을 위해 할당되어 있습니다.

 

4. 프로그램 설치가 끝났습니다. 테스트를 진행하겠습니다.

🔍 mosquitto -v 명령의 의미와 출력 (버전확인)

mosquitto -v 명령어는 Mosquitto MQTT 브로커를 Verbose(상세) 모드로 실행하라는 요청입니다.

이 명령을 실행하면 Mosquitto 브로커가 시작되며, 터미널에 상세한 상태 메시지를 출력하기 시작합니다.


명령어의 역할

  • mosquitto: Mosquitto 브로커 실행 파일을 호출합니다.
  • -v (Verbose): 브로커가 동작하는 동안 모든 상태, 이벤트, 연결, 메시지 처리 과정에 대한 상세한 로그를 콘솔에 출력하도록 지시하는 옵션입니다.
C:\Program Files\mosquitto>mosquitto -v

mosquitto -v 실행후 에러가 나거나 1883포트가 사용중일때 조치하기

에러가 나거나 1883 포트가 사용중이다면 찾아보기 
1) netstat -ano | findstr :1883

관리자모드에서 입력
2) taskkill /pid 2848 /f
   -/pid 2848: 프로세스 ID가 2848인 프로세스를 지정합니다.
   -/f: 강제로 (Force) 종료합니다.

3) 프로세스 종료에 성공했다는 메시지가 나오면, 다시 mosquitto -v 명령을 실행하여
Mosquitto 브로커가 정상적으로 시작되는지 확인해 보세요.

 

서버 시작 과 종료

시작
C:\Program Files\mosquitto>net start mosquitto


종료
C:\Program Files\mosquitto>net stop mosquitto

 

 

서버도 잘 작동되는 것을 확인했다

1. 새로운 명령 포롬프트 창을 연다.    

서버실행
C:\Program Files\mosquitto>net stop mosquitto

구독실행
C:\Program Files\mosquitto>mosquitto_sub -h localhost -t /testTopic

 

2. 새로운 명령 포롬프트 창을 연다.    

C:\Program Files\mosquitto>mosquitto_pub -h localhost -t /testTopic -m "Hello World"

C:\Program Files\mosquitto>mosquitto_pub -h localhost -t /testTopic -m "Hello World123"

 

위 쪽이 pub 메시지 전송(발행)
아래쪽이 sub 메시지 수신확인(구독)

 

자료가 원활하게 전달되고 있는 것을 확인할 수 있습니다. 기타 옵션은 인터넷에서 찾아보도록 합시다.

 

참조

 

 

'IT writer' 카테고리의 다른 글

스마트 팩토리, DX, AX  (0) 2026.01.09
클라우드형 서비스 모델  (0) 2025.12.11
좋은 개발자가 되기 위한 5가지 필수 습관  (0) 2025.11.25
개발분야 PM 과 PL 역활  (0) 2025.11.25
데이터베이스 정규화 (기초)  (2) 2025.05.28