[Spring WebSocket] STOMP에서의 예외처리
·
Spring/WebSocket
우리가 `Spring`의 `HTTP` 작업에서 예외처리를 하는 경우`@RestControllerAdvice`와  `@ExceptionHandler`를 사용하면 아주 편하게 예외처리를 할 수 있다. 다행히(?)도 `STOMP`에도 `@ExceptionHandler`와 비슷한 기능을 지원하는 `@MessgeExceptionHandler`가 있다.(대단하다.. SpringBoot!!) 하지만, 그냥 바로 사용하면 몇가지 문제가 존재한다. 우선, 여러 클라이언트가 특정 경로를 구독하고 있다고 가정해보자. 이때 만약, 특정 클라이언트가 `STOMP` 메시지 처리 관련해서 예외를 발생시키면(없는 메시지 수정, 없는 `Normal` 접근 등등)해당 클라이언트에게만 예외 메시지를 전송해야 한다. 하지만, `STOMP`..
[Spring WebSocket] STOMP
·
Spring/WebSocket
STOMP의 사용 이유?`WebSocket` 프로토콜은 두 가지 유형의 메시지를 정의하고 있지만,그 메시지의 내용까지는 정의하고 있지 않다. `STOMP`는 `WebSocket` 위에서 동작하는 프로토콜로써, 클라이언트와 서버가 전송할메시지 유형형식내용들을 정의하는 매커니즘이다.  STOMP 란?`STOMP`는 `Simple Text Oriented Messaging Protocol`의 약자로 `TCP` 또는 `WebSocket`과 같은양방향 네트워크 프로토콜 기반으로 동작한다. 이름에서도 알 수 있듯이, `STOMP`는 텍스트 지향 프로토콜이지만, `Message Payload`에는 `Text` 또는`Binary` 데이터를 포함할 수도 있다. `STOMP`는 HTTP 위에서 동작하는 `Frame` 기반..