본문 바로가기
Java/Spring

Spring) 실시간 통신 방식 선정

by NH_club 2023. 8. 8.
WebSoket VS SSE(Server Sent Events)

실시간성이 높아야 하는 프로젝트의 특성상 Polling과 Long Polling 방식은 제외했다.

WebSoket은 양방향 통신을 지원한다. 클라이언트가 서버로 요청을, 서버에서 클라이언트로 응답을 주고 받을 수 있다. 웹 소켓은 연결이 되면 웹소켓 프로토콜로 데이터를 주고 받는다. 사용자가 여러명일 경우 사용자의 수만큼 연결을 유지해야 하기 때문에 트래픽이 높을 수록 서버 자원을 많이 사용하게 된다.

반면에 SSE는 단방향 통신을 지원하며, 지속적인 연결을 유지하지 않아도 되므로 서버 자원을 효율적으로 사용할 수 있다.

웹소켓은 HTTP 프로토콜을 사용하지 않기 때문에 비교적 구현이 복잡하다. 현재 프로젝트에서는 단방향 통신이면 충분하고, 서버 자원을 효율적으로 사용할 수 있도록 SSE를 채택했다.