SW정글/프로젝트

Server Push

초혼 2023. 1. 30. 16:57

시작

Highlighters에서 extension을 통해서 feed를 생성하면 다른 그룹원들에게 notification이 가는 기능을 구현하고자 한다.

HTTP

기본적으로 client와 server는 http로 통신을 한다. http는 client에서 server에 request를 보내주면 그에 맞춰 server가 client에게 response를 전달하는 방식이다. server는 response를 보내면서 client와의 연결을 끊어버리고(connectionless), client의 상태를 보존하지 않는다(stateless). 그렇기 때문에 http 방식으로는 server가 먼저 client에 data를 전송할 수 없다.

push notification은 특정 이벤트가 발생했을 때 그에 대한 정보를 server가 client에게 보내주는 것이다. 앞에서 말한 http의 특징으로 인해 server는 client에게 request 없이 data를 보내줄 수 없다. 

Server Push 기법

server가 client에게 먼저 data를 전송하거나 혹은 그런것처럼 보이게하는 방법

 

Polling

  • client에서 주기적으로 request를 보내서 response를 받는 방식
  • 주기가 너무 짧으면 서버에 무리를 줄 수 있다최악의 경우 주기 만큼의 딜레이가 생긴다 → 실시간이 중요하지 않은 곳에 적합
  • 불필요한 request/response가 많이 발생한다 → http 오버헤드 발생

Long Polling

  • client에서 request를 보내면 원하는 event가 발생하기 전까지 response를 미루는 방식
  • 이벤트를 감지해서 response를 보내면 client는 바로 다시 request를 보낸다
  • 이벤트 발생 주기가 짧으면 Polling 방식과 똑같아 진다

SSE(Server-Sent Events)

  • http stream 방식
  • html5 표준
  • server → client 방향의 단방향 통신

WebSocket

  • http와는 달리 양방향 통신이 가능한 프로토콜
  • websocket 프로토콜을 위한 별도의 서버가 필요함

 

 

백엔드 서버 아키텍처 — Presentation Layer 3. 응답 유형에 따른 Variation 2— push notification

이 포스팅에서는 웹 서버의 응답 유형중 하나라고 볼 수 있는, push notification의 핵심 원리에 대해서 알아봅니다.

tech.junhabaek.net

 

웹 푸시 알림(Web Push Notification)

👉 시작하면서 웹 푸시 알림(Web Push Notification)이란, 말 그대로 브라우저 환경에서 푸시 알림을 받을 수 있는 기술을 의미한다. 푸시 알림이라고 하면 네이티브 앱의 전유물이라고 느낄 수 있지

geundung.dev