티스토리 뷰

Back-end

[루비온레일즈] 웹 소켓

jhkang-dev 2019. 2. 6. 16:57

Web socket이란 무엇인가??


웹 소켓이란 서버와 클라이언트 사이에 효율적인 양방향 통신을 가능하게 하는 기술이다.

실시간 채팅 어플리케이션을 사용할 때 새로고침이 없이도 다른 사람이 작성한 텍스트를 바로 바로 확인할 수 있는데 바로 Websocket 때문에 가능한 것이다.




Web socket을 왜 사용하나요?


기존에는 HTTP 통신을 이용해서 클라이언트와 서버가 통신을 하였습니다. HTTP는 기본적으로 Stateless 상태이기 때문에 클라이언트가 Request를 할 때만 서버에서 Response를 하게 됩니다. 이 때 발생할 수 있는 문제점은 서버는 업데이트가 되었지만, 클라이언트가 refresh를 하지 않으면 업데이트가 반영되지 않은 상태로 유지된다는 점입니다. 이전에는 프론트엔드 쪽에서 Long-Polling, Ajax로 이러한 문제를 어느정도 해결이 가능했지만, 업데이트 속도가 빨라야 하는 주식 프로그램, 채팅 어플리케이션에서는 한계점이 있었고 Websocket은 이런 분야에서 아주 유용한 기술입니다.


Websocket은 Stateful Protocol이기 때문에 클라이언트와 한 번 연결되면 동일한 라인을 이용해서 통신을 하게 됩니다. HTTP 통신시에 발생하는 HTTP와 TCP 연결 트래픽을 피할 수 있습니다.





댓글