본문 바로가기
목차훔치기/네트워킹과 웹 성능 최적화 기법

서버 발송 이벤트(네트워킹과 웹 성능 최적화 기법)

by 해삼2 2023. 12. 5.
728x90
반응형
서버 발송 이벤트

서버 발송 이벤트

"서버 발송 이벤트(server push event)"는 웹 애플리케이션에서 사용되는 통신 기술 중 하나입니다. 

이 기술은 서버에서 클라이언트로 데이터를 비동기적으로 전송하는 방법을 제공하여, 

실시간 업데이트 및 푸시 기능을 구현하는 데 사용됩니다.

기존의 클라이언트-서버 통신은 클라이언트가 서버에 요청을 보내고, 

서버가 응답을 반환하는 방식이었습니다. 

그러나 이 방식은 주로 클라이언트가 서버에게 어떤 일이 발생했는지 알려주는 방법으로 사용되었습니다. 

서버 발송 이벤트는 이러한 상호 작용을 뒤집어서, 

서버에서 클라이언트로 데이터를 푸시하여 언제든지 새로운 정보를 전달할 수 있게 합니다.

 

서버 발송 이벤트의 주요 특징

 

단방향 통신: 

클라이언트가 서버에 명시적으로 요청을 보내지 않아도 서버에서 클라이언트로 데이터를 보낼 수 있습니다.

실시간 업데이트: 

서버에서 발생한 이벤트 또는 업데이트를 실시간으로 클라이언트에게 전달할 수 있어, 

실시간 정보 업데이트가 가능합니다.

효율적인 네트워크 사용: 

일반적으로 서버 발송 이벤트는 재접속 및 재전송 로직을 자동으로 처리하여 네트워크 효율성을 높입니다.

서버 발송 이벤트는 주로 웹 소켓(WebSocket)을 기반으로 하지만, 

최근에는 웹 푸시 API와 같은 기술도 사용되고 있습니다. 

웹 소켓은 전이중(full-duplex) 통신을 지원하며, 서버 및 클라이언트 간에 양방향 통신이 가능합니다. 

반면에 웹 푸시 API는 더 간단한 단방향 통신을 제공하며, 

주로 서버에서 클라이언트로의 데이터 푸시에 중점을 둡니다.

이러한 서버 발송 이벤트는 실시간 채팅, 주식 시세 업데이트, 알림 등과 같은 다양한 

웹 애플리케이션에서 사용되어 효과적으로 실시간 업데이트를 구현하는 데 활용됩니다.

 

서버 발송 이벤트의 간단한 예시

 

상황: 

가상의 실시간 채팅 애플리케이션을 만들어보고자 합니다. 

사용자가 메시지를 입력하면, 해당 메시지를 모든 연결된 클라이언트에게 

실시간으로 전송하여 채팅이 가능하게 합니다.

서버 측 (Node.js를 사용하는 예시):
서버를 생성하고, 클라이언트에게 전송할 HTML 파일을 읽습니다.
WebSocket을 설정하여 클라이언트와의 양방향 통신을 활성화합니다.
연결된 클라이언트들에게 메시지를 전송하기 위한 broadcast 함수를 작성합니다.
클라이언트와의 연결 및 메시지 수신 이벤트를 처리합니다.


클라이언트 측 (간단한 HTML과 JavaScript):
HTML 파일에는 채팅을 표시할 ul 요소와 메시지를 입력할 input 및 전송 버튼이 있습니다.
WebSocket을 생성하여 서버에 연결합니다.
메시지 수신 이벤트를 처리하여 받은 메시지를 화면에 추가합니다.
사용자가 입력한 메시지를 서버로 전송하는 함수를 작성하고, 전송 버튼과 연결합니다.
실제로 이 코드를 실행하면, 여러 클라이언트가 서버에 연결되어 채팅 메시지를 주고받을 수 있습니다. 

서버는 클라이언트로부터 받은 메시지를 다시 모든 클라이언트에게 전달하므로, 

메시지가 입력되는 즉시 모든 참여자에게 실시간으로 표시됩니다.

이것이 바로 서버 발송 이벤트를 이용한 간단한 실시간 채팅 애플리케이션의 예시입니다.

 

 

*바쁜 사람을 위한 정리

서버 발송 이벤트는 웹 애플리케이션에서 사용되는 통신 기술 중 하나이며 데이터를 비동기적으로 전송하는 방법을 제공하여, 실시간 업데이트 및 푸시 기능을 구현하는 데 사용됩니다. 예시로는 주로 실시간 채팅에서 많이 사용되며 서버에서 클라이언트로 데이터를 푸시하여 언제든지 새로운 정보를 전달할 수 있게 만들어져 연결된 모든 클라이언트에게 실시간으로 공지나 내용등을 전파할수 있게 됩니다.

 

728x90
반응형