231017 개발일지 TIL - Javascript WebSocket(실시간 양방향 통신)

The Web On Everything·2023년 10월 17일
0

개발일지

목록 보기
160/269

Javascript WebSocket(실시간 양방향 통신)

웹 애플리케이션에서 실시간 상호작용은 채팅 애플리케이션, 멀티플레이어 게임 등에서 필수적인데, 이를 가능하게 하는 기술 중 하나가 웹소켓(WebSocket)이다.

웹소켓이란?

웹소켓은 웹 페이지와 서버 간에 열린 연결을 통해 실시간으로 데이터를 주고받을 수 있는 고급 기능을 제공하는 프로토콜이다. 일반적인 HTTP 프로토콜과는 달리, 웹소켓은 양방향 통신을 지원한다. 즉, 클라이언트와 서버 모두 언제든지 메시지를 보낼 수 있다.

웹소켓 특징

실시간 양방향 통신: 웹소켓은 클라이언트와 서버 간에 실시간으로 데이터를 주고받을 수 있는 양방향 통신 기능을 제공한다. 채팅 애플리케이션, 실시간 업데이트가 필요한 대시보드, 멀티플레이어 게임 등에서 매우 유용하다.

성능 최적화: HTTP 요청과 달리 웹소켓 연결은 한 번 열린 후 계속 유지되므로, 데이터를 전송할 때마다 연결을 생성하고 종료하는 오버헤드가 없다. 이로 인해 작은 크기의 데이터를 빈번하게 전송하는 경우에도 높은 성능을 유지할 수 있다.

서버에서 클라이언트로의 푸시: 서버는 필요한 시점에 클라이언트로 메시지를 직접 보낼 수 있으므로, 클라이언트가 지속적으로 서버에 상태를 요청하지 않아도 된다.

웹소켓 활용

  • 실시간 채팅 애플리케이션: 사용자들 간의 실시간 채팅 기능을 제공하기 위해 사용
  • 멀티플레이어 온라인 게임: 게임 상태를 실시간으로 동기화하고, 플레이어 간의 상호작용을 가능하게 하기 위해 웹소켓을 사용
  • 실시간 알림 시스템: 웹사이트나 애플리케이션에서 실시간으로 업데이트 또는 알림을 보내는 데 사용
  • 실시간 데이터 스트리밍: 주식 거래 정보, 날씨 정보 등 실시간으로 변경되는 데이터를 스트리밍하는 데 사용

요약
웹소켓은 실시간 통신과 데이터 스트리밍에 필요한 기능을 제공함으로서, 다양한 웹 서비스에서 중요한 역할을 한다.

웹소켓은 그 자체로도 막강하지만, socket.io와 같은 라이브러리를 통해 더욱 강력하고 유연한 기능을 제공할 수 있다.

profile
오늘은 무슨 오류를 만날까?! 널 만나러 가는 길~ LOL

0개의 댓글