STOMP
simple text oriented Messaging protocol
메시지 브로커를 활용하여 쉽게 메시지를 주고 받을 수있는 프로토콜
pub- sub : 발신자가 메시지를 발행하면 수신자가 그것을 수신하는 메시징 패러다임
메시지 브로커: 발신자의 메시지를 받아와서 수신자들에게 메시지를 전달하는 어떤것
http : 클라이언트가 보낸 요청 서버가 응답을 마치면 연결을 끊는 비연결성가짐
http 의 request , response형태의 단방향 모델
polling
: 프로그램이나 장치에서 다른 프로그램, 장치들이 어떤 상태에 있는지를 지속적으로
체크하는 전송제어 방식이다.
클라이언트와 서버가 실시간 통신을 하는 것과 유사하게
클라이언트가 일정 간격에 걸쳐서 요청을 보낸다.
실시간성을 보장하는 것이 아니고 http는 단발성 통신이기 때문에
부가적인 header 가 많아서 서버에 부하를 일으킬수 있다.
long polling
일정 간격마다 요청을 보내지 않고 처음 요청을 보내고 서버에서
Time-Out 될때까지 기다렸다가 서버에서 데이터를 전송하면 클라이언트가 응답을 받고 다시 요청을 보내는 방식이다.
변경된 데이터가 있을시에만 응답이 이루어져서 polling 보다 서버 부하가 적고 실시간성이 높은 편이다.
데이터가 자주 바뀔시 header가 포함한 많은 양의 요청을 보내야하다.
참고 자료)
웹에서의 실시간 통신
웹에서의 실시간 통신
velog.io
왜 웹소켓을 사용하는가? - 『박승규 저자,Node.js 백엔드 개발자 되기 p.249 일부 발췌』
ⓐ화면 갱신 없이 실시간성을 요구하는 어플리케이션을 만드는데 용이함
ⓑ클라이언트가 서버에 따로 요구하지 않아도 양방향 통신이 가능함
ⓒ웹 환경에서 연속된 데이터를 노출하기 쉬움(->그래서 채팅프로그램에 사용 多)
socket.io 대신 stomp를 사용한 이유?
1 . 스프링과 통합이 쉽다. 스프링에서 stomp 를 지원해주기 때문에 통합이 쉬운편이다.
2. 메시지 구조화 : stomp 가 메시지 기반 아키텍처를 사용하여 메시지를 "publicsh/ subscribe" 패턴으로 구조화 할수 있다.
3.HTTP 처럼 헤더와 본문의 명확한 구분되어있어서 디버깅이 쉽다.
4. 표준화된 명령어로 connect/ disconnect 를 할수 있다.
5. 목적지 경로 방식을 명시적으로 지정하여 확인이 쉬움
'【와신상담】' 카테고리의 다른 글
[jpa] 셀프 양방향 연관관계 (0) | 2025.02.13 |
---|---|
[jpa]페치 조인,named 쿼리,벌크연산 (0) | 2025.02.11 |
[jpa] 데이터 타입 분류 (0) | 2025.02.05 |
[파이널프로젝트수정] 스프링부트의 계층적구조- [스프링부트완전정복 p.55-57] (0) | 2025.01.21 |
[파이널프로젝트수정하기] [1] 요구사항 분석 → [2] 데이터베이스 설계 (0) | 2025.01.21 |