• 티스토리 홈
  • 프로필사진
    루루개발자
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
루루개발자
  • 프로필사진
    루루개발자
    • 분류 전체보기 (213)
      • react & next.js (13)
      • Node.js & Javascript & Type.. (24)
        • d3.js (10)
      • 차트 만들기 (1)
      • 티스토리 스킨 개발 (7)
      • 내가 만든 패키지 (3)
      • 내가 만든 CSS (1)
      • CSS (7)
      • 도커 & 쿠버네티스 (3)
      • 개인 프로젝트 (7)
      • 리뷰 & 추천 (2)
      • 알고리즘 (1)
      • IT 기타 (18)
      • 잡동사니 (1)
      • Spring Boot (5)
      • 취미로 그리는 그림들 (120)
      • 개인적인 생각들 (0)
  • 반응형
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • MQTT 에 대하여
        2023년 07월 22일
        • 루루개발자
        • 작성자
        • 2023.07.22.:50
        반응형

        안녕하세요. 루루개발자 입니다.

         

        회사에서 프론트엔드 개발을 진행중에 있는데, 프론트에서.. 즉 브라우저죠, 브라우저에서 mqtt 통신을 통해 토픽을 구독하고 이벤트를 받거나 토픽으로 메시지를 발행하여 여러가지 처리를 진행해야 하는 상황이 있었습니다. 처음에 회사에서 mqtt 를 사용해야 한다는 말을 들었을 때 mqtt 라는 단어를 처음 들어봤습니다. 그래서 이번에는 mqtt 에 대해 한번 알아보는 시간을 가져보려 합니다.

         

        MQTT 란?

        mqtt 는 경량화된 발행/구독 메시징 프로토콜(통신규격)을 의미합니다.

        낮은 전력, 낮은 대역폭 환경에서도 정상 작동될 수 있도록 설계되었기 때문에 매우 가볍다고 표현되기도 하며, 이러한 특성 때문에 iot(사물인터넷) 같은 곳에서 자주 사용된다고 합니다. 

         

        발행과 구독 (Publish & Subscribe)

        mqtt 는 브로커 서버에 연결하여 특정 토픽으로 메시지를 발행하거나, 특정 토픽을 구독하여 메시지를 받을 수 있습니다. 브로커 서버와 연결된 어떠한 장치(디바이스)는 발행자가 될 수도 있고 구독자가 될 수도 있고 발행자이자 구독자가 될 수도 있습니다.

         

        QoS (Quality of Service)

        mqtt 에는 QoS 라는 개념이 존재합니다. 서비스의 질을 보장해주는 수준을 의미하는데 다음과 같이 총 3단계가 존재합니다.

        • 0 : QoS 가 0으로 설정되면 해당 메시지는 딱 한번만 전송하고 해당 내용을 잊어버립니다. 즉, 한번 보내긴 하지만 정말로 보내졌는지 아니면 실패했는지 여부를 체크하지 않고 이 메시지에 대한 정보는 삭제된다는 의미입니다. Qos 가 0으로 설정되어 있다면 메시지를 받지 못하는 클라이언트가 생길 수 있다는 말이 됩니다.
        • 1 : QoS 가 1로 설정되면 해당 메시지는 최소 1번 이상은 클라이언트로 전송됨을 보장합니다.  이 말은 메시지가 정확히 클라이언트에게 전송되기는 하지만 그게 2번 이상 전송 될 수 있다는 의미입니다.
        • 2 : QoS 가 2로 설정되면 해당 메시지는 정확히 딱 1번 클라이언트로 전송됨을 보장합니다. 

        QoS 값이 2에 가까울 수록 브로커 서버에서는 저장해두어야 할 데이터와 체크해야 하는 과정이 늘어나므로 서버에 대한 부하는 커집니다. 하지만 그만큼 정확성을 보장할 수 있습니다.

         

        브로커 (Broker)

        mqtt 에서 브로커는 발행자와 구독자를 연결 시켜주는 다리(통로) 역할을 한다고 볼 수 있습니다. 발행자로부터 토픽을 받으면 해당 토픽을 구독하고 있는 구독자들에게 해당 토픽의 메시지를 전달해주게 됩니다.

         

        브라우저 mqtt 지원 여부

        브라우저에서는 mqtt:// 프로토콜로 바로 브로커 서버와 통신할 수는 없습니다. 대신 "MQTT over WSS" 라고 하여 wss:// 프로토콜을 사용하여 mqtt 패킷을 websocket 패킷으로 포장하여 브로커 서버와 통신하는 방식으로 브라우저에서 mqtt 를 이용할 수 있습니다. 다만 이렇게 되면 결국에는 websocket 이 중간에 있게 되므로 mqtt 의 경량적인 이점이 100% 발휘되기는 어렵다고 할 수 있습니다.

         

         


         

        - 출처 -

        https://www.joinc.co.kr/w/man/12/MQTT/Tutorial
        https://underflow101.tistory.com/22
        https://dalkomit.tistory.com/111
        https://dydtjr1128.github.io/mqtt/2018/01/31/MQTT-and-MQTT-brokers.html
        https://blog.naver.com/PostView.nhn?blogId=changbab&logNo=221565552533 

         

        반응형

        'IT 기타' 카테고리의 다른 글

        meta 태그의 keywords 는 이제 seo 에 영향을 주지 않는다?  (0) 2023.08.24
        네이티브? 웹뷰? 앱이 무엇으로 만들어졌는지 확인해보자!  (1) 2023.08.09
        github 에 내가 만든 react frontend package 배포하기  (0) 2023.07.22
        안드로이드 디바이스가 절전모드일 때 발생한 이슈  (0) 2022.10.01
        GET 메소드 요청시 body 를 보낼 수 있을까?  (0) 2022.08.28
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바