Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

csct3434

STOMP (Simple Text Oriented Messaging Protocol) 본문

개발 일지

STOMP (Simple Text Oriented Messaging Protocol)

csct3434 2024. 7. 23. 02:26

STOMP

 

  • Simple Text Oriented Messaging Protocol
  • 클라이언트와 서버 간에 전송할 메시지의 유형, 형식, 내용 등을 정의한 텍스트 기반 메시징 프로토콜
  • Publish-Subscribe 매커니즘을 제공하며 Message Broker를 통해 다른 사용자에게 메시지를 보내거나 서버가 특정 작업을 수행하도록 메세지를 전송
  • TCP 또는 WebSocket과 같은 양방향 네트워크 프로토콜을 기반으로 동작
  • 웹 소켓과 STOMP를 함께 사용하면 메시지의 구조가 정해져있어 양방향 통신 구현에 용이

 

Message Broker

  • Subscriber는 특정 Topic을 구독하고, Publisher는 해당 Topic으로 메시지를 전송
  • Message Broker는 Publisher로 부터 전달받은 메시지를 Subscriber에게 전달하는 중간자 역할을 수행
  • 기본적으로 In Memory Broker를 사용하는데, 세션을 수용할 수 있는 크기에 한계가 있고 메시지의 유실 가능성이 존재하며 모니터링이 불편하기 때문에 RabbitMQ, ActiveMQ, Kafka와 같은 외부 메시지 브로커를 사용하기도 함

 

STOMP 프레임 구조

COMMAND
header1:value1
header2:value2

body^@
  • COMMAND : 프레임의 종류를 나타내는 명령어
  • HEADER : 메시지와 관련된 메타 데이터를 담고 있는 키-값 쌍
  • BODY : 메시지의 내용을 담고 있는 부분, 텍스트나 바이너리 데이터가 포함됨

 

STOMP 사용 사례

  • STOMP는 다양한 분야에서 실시간 통신을 구현하는데 사용됨
  • 채팅 애플리케이션, 실시간 협업 도구, 게임, 금융 거래, IoT 애플리케이션 등

 

STOMP 장단점

장점

  • 간단한 헤더와 프레임 구조를 사용하여 오버헤드가 작기 때문에 데이터 전송의 효율성이 높음
  • 텍스트 기반의 프로토콜로 사람이 이해하기 쉬워 디버깅 및 분석이 용이함
  • 다양한 프레임 유형과 헤더를 지원하여 확장성이 높음
  • 메시지 전달 확인 및 재전송 메커니즘을 통해 안정적인 메시지 전송을 보장

단점

  • 바이너리 기반 프로토콜에 비해 데이터 전송 효율성이 떨어질 수 있음
  • 기본적으로 인증 및 암호화 기능을 제공하지 않아 별도의 보안 메커니즘이 필요