순수 웹소켓과 STOMP 중 고민
순수 웹소켓(WebSocket)
-
장점
- 저수준 API를 제공하여 웹소켓 통신의 세밀한 제어가 가능함
- 프로토콜 오버헤드가 적어 메시지 전송이 빠르고 효율적임
-
단점
- 메시지 포맷, 에러 핸들링, 메시지 라우팅 등을 직접 구현해야 함
- 복잡한 메시징 패턴을 구현하기 위해 추가 작업이 필요함
STOMP
- 장점
- 고수준 추상화 API를 제공하여 메시지 브로커를 통한 메시지 라우팅, 구독 관리가 용이함
- Spring과 통합이 잘 되어있어서 Spring Boot를 사용하는 경우 구현이 상대적으로 쉬움
- 메시지 포맷과 라우팅 로직을 프레임워크가 처리해줌
- 단점
- 웹소켓에 비해 약간의 오버헤드가 있을 수 있음
- 이해하고 적절히 사용하기 위한 학습 곡선이 있음
결론
Spring Boot를 사용하고 있고, 메시지 라우팅을 간편하게 할 수 있다는 점에서 STOMP를 사용해 개발하기로 결정했다.