[항해99] WIL - 8주차 회고록
2022. 5. 2. 17:22ㆍHanghae99/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 |