MQTT 5.0 개발 및 디버깅을 위한 강력한 명령줄 도구 MQTT X CLI

IoT(사물인터넷) 생태계에서 MQTT 프로토콜이 널리 활용됨에 따라, 서버 개발자와 인프라 운영자에게 효율적인 테스트 도구는 필수적입니다. EMQ에서 오픈 소스로 제공하는 MQTT X CLI는 터미널 환경에서 MQTT 5.0 서비스를 신속하게 개발하고 디버깅할 수 있도록 설계된 강력한 명령줄 인터페이스(CLI) 도구입니다.

기존의 데스크톱 GUI 클라이언트는 시각적으로 편리하지만, 서버 터미널이나 리소스가 제한된 환경에서는 사용하기 까다로운 경우가 많습니다. MQTT X CLI는 이러한 제약을 해결하기 위해 별도의 그래픽 인터페이스 없이도 MQTT/TCP, TLS, WebSocket 연결과 발행/구독 기능을 완벽하게 지원합니다.

주요 특징 및 활용 사례

  • 서버 터미널 직접 테스트: 배포된 MQTT 브로커를 원격 서버 내에서 즉시 검증할 수 있습니다.
  • 스크립트 기반 자동화: 명령줄 스크립트를 작성하여 복잡한 시나리오의 테스트나 간단한 부하 테스트를 자동화할 수 있습니다.
  • 경량화된 실행: GUI 라이브러리가 필요 없어 시스템 자원을 최소화하며, 설치 과정이 매우 단순합니다.

환경별 설치 방법

MQTT X CLI는 의존성 환경 구성 없이 다양한 운영체제에 즉시 설치하여 사용할 수 있습니다.

1. macOS 및 Linux

터미널에서 아래 명령어를 사용하여 아키텍처에 맞는 실행 파일을 다운로드하고 경로를 설정합니다.

# macOS (Apple Silicon)
curl -LO https://www.emqx.com/zh/downloads/MQTTX/v1.8.0/mqttx-cli-macos-arm64
sudo install ./mqttx-cli-macos-arm64 /usr/local/bin/mqttx

# Linux (x86-64)
curl -LO https://www.emqx.com/zh/downloads/MQTTX/v1.8.0/mqttx-cli-linux-x64
sudo install ./mqttx-cli-linux-x64 /usr/local/bin/mqttx

Homebrew를 사용하는 macOS 사용자는 더 간편하게 설치할 수 있습니다.

brew install emqx/mqttx/mqttx-cli

2. Windows

공식 배포 페이지에서 .exe 파일을 직접 다운로드하여 환경 변수에 등록한 뒤 사용할 수 있습니다.

3. Node.js (NPM)

Node.js 환경이 구축되어 있다면 운영체제와 상관없이 NPM을 통해 설치가 가능합니다.

npm install mqttx-cli -g

기본 사용법 가이드

설치가 완료되었다면 터미널에 mqttx -V를 입력하여 버전을 확인합니다. 정상적으로 출력된다면 아래와 같이 공용 브로커(broker.emqx.io)를 사용하여 메시지 송수신 테스트를 진행할 수 있습니다.

메시지 구독 (Subscribe)

먼저 특정 토픽을 수신 대기하는 구독자를 실행합니다.

mqttx sub --topic 'sensor/data/node1' --hostname 'broker.emqx.io' --port 1883

메시지 발행 (Publish)

새로운 터미널 창을 열고, 앞서 지정한 토픽으로 데이터를 전송합니다.

mqttx pub --topic 'sensor/data/node1' --hostname 'broker.emqx.io' --port 1883 --message '{"temp": 24.5, "status": "active"}'

다중 메시지 전송 모드

연속적으로 여러 메시지를 보낼 때는 -M 파라미터와 -s 파라미터를 조합하여 줄바꿈 단위로 메시지를 입력할 수 있습니다.

mqttx pub -t 'sensor/data/node1' -h 'broker.emqx.io' -p 1883 -s -M

고급 설정 및 도움말

MQTT X CLI는 단순 송수신 외에도 유언 메시지(Will Message), SSL/TLS 보안 연결, 사용자 인증 등을 폭넓게 지원합니다. 각 명령의 상세 옵션은 --help 플래그를 통해 확인할 수 있습니다.

# 전체 도움말 출력
mqttx --help

# 구독 관련 상세 옵션 확인
mqttx sub --help

# 발행 관련 상세 옵션 확인
mqttx pub --help

태그: MQTT MQTT-X IoT cli emqx

8월 8일 07:30에 게시됨