스톰프 (STOMP)

youngkyu MIn·2023년 11월 1일

웹소켓 (WebSocket)

  • 웹소켓은 웹페이지와 서버 간의 양방향 통신을 가능하게 해주는 프로토콜이다.
  • 기본적으로 HTTP와는 다르게 연결이 한 번 수립되면 지속적으로 유지되므로, 서버나 클라이언트가 언제든지 데이터를 전송할 수 있다.
  • 이를 통해 실시간 통신이나 게임, 채팅 애플리케이션과 같이 실시간으로 데이터가 주고받아져야 하는 상황에 적합하다.

스톰프 (STOMP)

  • 스톰프(STOMP, Simple Text Oriented Messaging Protocol)는 간단한 텍스트 기반의 메시징 프로토콜이다.
  • 스톰프는 웹소켓 위에서 동작하는 하나의 메시징 프로토콜로 생각될 수 있으며, 메시징 브로커와 클라이언트 간의 통신을 위한 일종의 중간 계층 역할을 한다.

스톰프의 주요 특징:

  • 텍스트 기반의 명령어와 헤더, 본문으로 구성된 프레임을 사용한다.
  • 여러 종류의 메시징 브로커와 호환된다 (예: RabbitMQ, ActiveMQ).
  • 토픽 구독, 메시지 발행과 같은 일반적인 메시징 동작을 추상화한 명령어를 제공한다.
  • 웹소켓은 연결 지속성과 실시간 양방향 통신을 제공하는 반면, 스톰프는 그 위에서 동작하여 메시징 패턴과 행동을 정의하고 관리하는 역할을 한다. 둘을 결합하면 웹 또는 애플리케이션 환경에서 효율적이고 안정적인 실시간 메시징 솔루션을 구축할 수 있다.

텍스트기반의 메시징 프로토콜 이라는게 무슨 뜻일까?

  • 텍스트 기반의 메시징 프로토콜"이라는 표현은 해당 프로토콜이 메시지 전송을 위해 텍스트 형식을 사용한다는 것을 의미한다.
  • 스톰프(STOMP)의 경우, 통신 시 사용되는 프레임(frame)은 명령어, 헤더, 본문으로 구성되며, 이 모든 정보는 텍스트 형식으로 표현된다. 예를 들어, 클라이언트가 메시지를 발행하려면 다음과 같은 텍스트 형식의 프레임을 보내게 된다
SEND
destination:/some/destination
content-type:text/plain

Hello, World!
  • SEND는 명령어
  • destination:/some/destination와 content-type:text/plain은 헤더 정보
  • Hello, World!는 메시지 본문
profile
한 줄 소개

0개의 댓글