본문 바로가기
CODING STUDY/NETWORK

[프로토콜] MQTT에 대한 개념과 이해

by 놀고 쉬고 싶은 개발자 2025. 12. 22.

❓MQTT 대체 이건 뭔데 갑자기 프로젝트에서 나온 걸까

⚠️ 전문적 아님 주의, 본인 이해를 위한 내용 위주이기 때문에 깊이가 깊지 않음


☑️ MQTT에 관한 설명

MQTT

: Message Queueing Telemetry Transport

▶︎ 발행-구독(Publish-Subscribe) 기반의 메세지 송수신 프로토콜

▶︎ 메시징 브로커를 통해 송수신

 

MQTT는 무엇을 하는가?

▶︎ 클라이언트가 Topic을 구독하여 메세지를 받을 수 있다.

▶︎ 중간에 브로커가 있어서 게시자와 구독자 간의 통신을 처리한다.

 


☑️ Publish-Subscribe 구조

🗣️ Publisher (게시자)

: 특정 Topic에 메세지를 발행함

 

📥  Broker (중개자)

: 클라이언트의 연결을 관리, 발행된 메세지를 구독자에 라우팅 하는 서버 역할 수행

: 즉, 게시자와 구독자 간에 통신처리 진행

 

👥 Subscriber (구독자)

: 관심 있는 Topic을 구독하여 발행된 메세지를 전달받음

 


☑️ 주요 개념

🏷️ Topic

▶︎ 구독하려고 하는 주제

▶︎ 슬래시( / )로 구분
    ex) sports/computer/qwer

 

🚦QoS

: Quality of Service

▶︎ Qos 0: 메세지를 한 번만 전송 시도

                수신 여부 상관없이 전달

▶︎ Qos 1: 최소 한 번은 전달

                클라이언트가 받았다는 응답을 브로커를 통해 전달받음

                중복 가능

▶︎ Qos 2: 정확하게 한 번만 전달

                한 번만 전달되었다는 것이 보장됨

                중복 없음

 


☑️ 그림으로 보는 MQTT

⚠️  예시는 MQTT의 Topic 기반 메시지 전달 방식을 이해하기 위한  개념적인 예시이며, 실제 사용 사례를 단순화했습니다!

▶︎ Publisher는 Topic "Computer"로 메시지를 발행한다.

▶︎ Broker는 해당 Topic을 구독 중인 Subscriber에게만 메시지를 전달한다.