[항해99] WIL - 8주차 회고록

2022. 5. 2. 17:22Hanghae99/WIL

Weekly I Learned

  • 실전 프로젝트 아이디어 재기획 및 와이어 프레임 완성
  • 실시간 채팅 기능 구현 (로그인 없이)

실전 프로젝트를 진행하며 기술적으로 막현던 부분은?

- 채팅 기능을 구현하면서 Stomp 에 대한 개념이 잡히지 않았다.

 

Stomp 란

메시지 전송을 효율적으로 하기 위해 나온 프로토콜이며 기본적으로 pub/sub 구조로 되어있어 메시지를 발송하고, 메시지를 받아 처리하는 부분이 확실히 정해져 있기 때문에 개발하는 입장에서 명확하게 인지하고 개발할 수 있는 이점이 있습니다. 또한 Stomp를 이용하면 통신 메시지의 헤더에 값을 세팅할 수 있어 헤더 값을 기반으로 통신 시 인증처리를 구현하는 것도 가능합니다.

 

stomp 사용하는 이유?

 

Spring framework 및 Spring Security는 STOMP 를 사용하여 WebSocket만 사용할 때보다 더 다채로운 모델링을 할 수 있다.

  • Messaging Protocol을 만들고 메세지 형식을 커스터마이징 할 필요가 없다.
  • RabbitMQ, ActiveMQ 같은 Message Broker를 이용해, Subscription(구독)을 관리하고 메세지를 브로드캐스팅할 수 있다.
  • WebSocket 기반으로 각 Connection(연결)마다 WebSocketHandler를 구현하는 것 보다 @Controller 된 객체를 이용해 조직적으로 관리할 수 있다.
    • 즉, 메세지는 STOMP의 "destination" 헤더를 기반으로 @Controller 객체의 @MethodMapping 메서드로 라우팅 된다.
  • STOMP의 "destination" 및 Message Type을 기반으로 메세지를 보호하기 위해 Spring Security를 사용할 수 있다.

 

728x90

'Hanghae99 > WIL' 카테고리의 다른 글

[항해99] WIL - 12주차 회고록  (0) 2022.06.01
[항해99] WIL - 11주차 회고록  (0) 2022.05.24
[항해99] WIL - 7주차 회고록  (0) 2022.04.25
[항해99] WIL - 4주차 회고록  (0) 2022.04.03
[항해99] WIL - 3주차 회고록  (0) 2022.03.27