본문 바로가기

개발일지/디스턴스

STOMP란? WebSocket과의 차이

반응형
 

STOMP 란?

STOMP는 Simple Text Oriented Messaging Protocol의 약자로

메시징 시스템 간에 데이터를 교환하기 위한 간단하면서도 유연한 텍스트 기반 프로토콜이다.

웹 소켓 기반으로 동작하며, 메시징 애플리케이션에서 표준 프로토콜로 채택되어 있다.

 

[WebSocket에 대한 참고글]

 

Web Socket 통신 방식이란?

목차 프로토콜이란 무엇인가 웹소켓(Web Socket) 프로토콜이란? HPPT 통신과의 차이점 웹소켓 통신 방법 1. 프로토콜이란 무엇인가 프로토콜은 쉽게 이야기하면 "통신을 위한 규칙"이다. 사전전 정의

sol-aftercoding.tistory.com

 

Web Socket과의 차이점은 어떤 것이 있을까?

 

1. Pub/Sub 구조

STOMP는 WebSocket에는 없는 Pub/Sub 구조를 가지고 있다.

발행자(Publisher)가 특정 토픽이나 큐에 메시지를 생성하고 발행한다.

그러면 메시지 브로커(Message Broker)가 발행된 메시지를 관리한다.

구독자(Subscriber)는 특정 주제나 큐에 구독할 수 있는데 이 때 메시지 브로커는

등록된 모든 구독자에게 해당 주제의 메시지들을 전달한다.

메시지 브로커는 메시지의 라우팅, 필터링, 분배 등의 역할을 수행한다.

구독자는 발행된 메시지를 처리하거나 원하는 동작을 수행할 수 있다.

 

Web Socket은 서버와 클라이언트사이에 1:1 통신을 지원하고

간혹 연결이 끊기면 메세지가 사라지거나 하는 불상사가 발생하기도 한다.

그러나 STOMP는 메세지 브로커로 1:N 통신을 지원하기도 하고,

메세지를 서버에 저장했다가 클라이언트에 송신해주기 때문에 더 안전하다.

2. 메시지 형식

STOMP는 텍스트 기반의 메시징 프로토콜로, 사람이 읽을 수 있는 형태를 가지고 있다.

이는 디버깅이나 로깅 등에서 유용하게 사용된다.

Web Socket은 주로 이진 형식으로 데이터를 전송하지만, 텍스트 데이터도 지원한다.

3. 활용 방향

STOMP는 주로 서버 간의 메시징이나 클라이언트 간의 채팅과 같은 사용 사례에 적합하다.

반면 웹 소켓은 주로 브라우저와 서버 사이의 양방향 실시간 통신에 사용되며,

실시간 웹 애플리케이션에서 효과적으로 활용된다.