서버 발송 이벤트
서버 발송 이벤트
"서버 발송 이벤트(server push event)"는 웹 애플리케이션에서 사용되는 통신 기술 중 하나입니다.
이 기술은 서버에서 클라이언트로 데이터를 비동기적으로 전송하는 방법을 제공하여,
실시간 업데이트 및 푸시 기능을 구현하는 데 사용됩니다.
기존의 클라이언트-서버 통신은 클라이언트가 서버에 요청을 보내고,
서버가 응답을 반환하는 방식이었습니다.
그러나 이 방식은 주로 클라이언트가 서버에게 어떤 일이 발생했는지 알려주는 방법으로 사용되었습니다.
서버 발송 이벤트는 이러한 상호 작용을 뒤집어서,
서버에서 클라이언트로 데이터를 푸시하여 언제든지 새로운 정보를 전달할 수 있게 합니다.
서버 발송 이벤트의 주요 특징
단방향 통신:
클라이언트가 서버에 명시적으로 요청을 보내지 않아도 서버에서 클라이언트로 데이터를 보낼 수 있습니다.
실시간 업데이트:
서버에서 발생한 이벤트 또는 업데이트를 실시간으로 클라이언트에게 전달할 수 있어,
실시간 정보 업데이트가 가능합니다.
효율적인 네트워크 사용:
일반적으로 서버 발송 이벤트는 재접속 및 재전송 로직을 자동으로 처리하여 네트워크 효율성을 높입니다.
서버 발송 이벤트는 주로 웹 소켓(WebSocket)을 기반으로 하지만,
최근에는 웹 푸시 API와 같은 기술도 사용되고 있습니다.
웹 소켓은 전이중(full-duplex) 통신을 지원하며, 서버 및 클라이언트 간에 양방향 통신이 가능합니다.
반면에 웹 푸시 API는 더 간단한 단방향 통신을 제공하며,
주로 서버에서 클라이언트로의 데이터 푸시에 중점을 둡니다.
이러한 서버 발송 이벤트는 실시간 채팅, 주식 시세 업데이트, 알림 등과 같은 다양한
웹 애플리케이션에서 사용되어 효과적으로 실시간 업데이트를 구현하는 데 활용됩니다.
서버 발송 이벤트의 간단한 예시
상황:
가상의 실시간 채팅 애플리케이션을 만들어보고자 합니다.
사용자가 메시지를 입력하면, 해당 메시지를 모든 연결된 클라이언트에게
실시간으로 전송하여 채팅이 가능하게 합니다.
서버 측 (Node.js를 사용하는 예시):
서버를 생성하고, 클라이언트에게 전송할 HTML 파일을 읽습니다.
WebSocket을 설정하여 클라이언트와의 양방향 통신을 활성화합니다.
연결된 클라이언트들에게 메시지를 전송하기 위한 broadcast 함수를 작성합니다.
클라이언트와의 연결 및 메시지 수신 이벤트를 처리합니다.
클라이언트 측 (간단한 HTML과 JavaScript):
HTML 파일에는 채팅을 표시할 ul 요소와 메시지를 입력할 input 및 전송 버튼이 있습니다.
WebSocket을 생성하여 서버에 연결합니다.
메시지 수신 이벤트를 처리하여 받은 메시지를 화면에 추가합니다.
사용자가 입력한 메시지를 서버로 전송하는 함수를 작성하고, 전송 버튼과 연결합니다.
실제로 이 코드를 실행하면, 여러 클라이언트가 서버에 연결되어 채팅 메시지를 주고받을 수 있습니다.
서버는 클라이언트로부터 받은 메시지를 다시 모든 클라이언트에게 전달하므로,
메시지가 입력되는 즉시 모든 참여자에게 실시간으로 표시됩니다.
이것이 바로 서버 발송 이벤트를 이용한 간단한 실시간 채팅 애플리케이션의 예시입니다.
*바쁜 사람을 위한 정리
서버 발송 이벤트는 웹 애플리케이션에서 사용되는 통신 기술 중 하나이며 데이터를 비동기적으로 전송하는 방법을 제공하여, 실시간 업데이트 및 푸시 기능을 구현하는 데 사용됩니다. 예시로는 주로 실시간 채팅에서 많이 사용되며 서버에서 클라이언트로 데이터를 푸시하여 언제든지 새로운 정보를 전달할 수 있게 만들어져 연결된 모든 클라이언트에게 실시간으로 공지나 내용등을 전파할수 있게 됩니다.
'목차훔치기 > 네트워킹과 웹 성능 최적화 기법' 카테고리의 다른 글
WebRTC(네트워킹과 웹 성능 최적화 기법) (4) | 2023.12.07 |
---|---|
웹소켓(WebSocket)(네트워킹과 웹 성능 최적화 기법) (0) | 2023.12.06 |
XMLHttpRequest(네트워킹과 웹 성능 최적화 기법) (2) | 2023.12.04 |
브라우저 네트워킹의 첫걸음(네트워킹과 웹 성능 최적화 기법) (0) | 2023.12.03 |
애플리케이션 전송 최적화(네트워킹과 웹 성능 최적화 기법) (2) | 2023.12.02 |