99클럽 19일차 TIL: WebSocket
2024. 4. 22. 16:41ㆍ개발 공부
728x90
반응형
#1. 오늘의 학습 키워드
자바 Spring 에서의 WebSocket 에 대해서
- 저번 post 에서 HTTP 2 방식으로 통신을 하여 양방향 통신을 지원하는 gRPC 에 대해서 알아보았다.
- 또한 채팅 등 실시간 서비스에 적합한 Spring Webflux 에 대해서 알아보았다.
- 이 두 가지의 특징을 살펴보면, 익숙한 또 다른 기술이 떠오른다
- WebSocket
#2. 공부한 내용
- WebSocket
- 웹 소켓
- 웹 소캣은 서버와 클라이언트 사이의 인터액티브 통신 세션을 설정하여 언제든 양방향 통신 및 데이터 전송을 가능하케 하는 기술이다
- 보통 채팅, 증권 거래, sns 등 서비스에서 많이 쓰이고 있다.
- 채팅 서비스를 구현 할 때 기존 rest API 방식을 사용하게 되면, 클라이언트에서 매번 서버로 HTTP 통신으로 request 를 보내야 하는데, 이는 비효율적인 방식이다.
- WebSocket특징
- HTTP 및 WebSocket Connect
- 최초 연결은 HTTP 를 통해 이뤄짐
- Hankshake
- 그 후 지속적인 연결은 Stateful Protocol을 사용하는 WebSocket Connection 을 통해 유지가 됨
- 매번 메시지를 전송할 때마다 새롭게 연결을 맺을 필요가 없다.
- Connection 유지 비용에 의하여, 트래픽이 많을 경우 서버에 부담이 될 수 있다.
- → 연결이 끊길 경우에 대한 고려를 해야한다.
- Connection 유지에 의하여, 서버의 변경 사항이 클라이언트에 실시간으로 적용된다.
- 최초 연결은 HTTP 를 통해 이뤄짐
- 평문메시지(Plaintext) 전송 방식
- 데이터 탈취를 방지하려면, SSL / TLS 보안 계층으로 메시지를 암호화해야 한다.
- HTTP 및 WebSocket Connect
- Spring 에서의 WebSocket 적용 순서 (추후 디테일하게 다뤄보겠다)
- Configuration 작성
- WebSocketHandler 구현
- afterConnectionEstablished() 메서드 구현
- handleTextMessage() 메서드 구현
- handleTransportError() 메서드 구현 (선택 사항)
- afterConnectionClosed() 메서드 구현 (선택 사항)
- 참조:
#3. 오늘의 회고
- 정리를 하자면, WebSocket 은 실시간 양방향 통신을 구현해, 클라이언트와 서버 간 지속적인 연결을 구축하여 실시간 데이터 전송 및 수신을 가능케한다.
- 아래와 같은 이점이 있다.
- 실시간 양방향 통신
- 낮은 지연시간 (Http 연결 재사용)
- 효율적인 통신 (Http 헤더 X)
- 아래와 같은 이점이 있다.
728x90
반응형
'개발 공부' 카테고리의 다른 글
99클럽 21일차 TIL: Validation Group (2) | 2024.04.24 |
---|---|
99클럽 20일차 TIL: SOLID (0) | 2024.04.23 |
99클럽 18일차 TIL: gRPC (0) | 2024.04.21 |
99클럽 17일차 TIL: Spring Webflux: Mono, Flux (2) | 2024.04.20 |
99클럽 16일차 TIL: Spring Webflux (0) | 2024.04.19 |