pile·
프론트엔드·flexflex·

모든 탭에 퍼지는 실시간 이벤트, SSE 1개로 끝내는 전략

문제숏폴링 방식의 서버 부하와 B2B 고객사 프록시 환경의 WebSocket 미지원으로 실시간 이벤트를 여러 탭에 안정적으로 전파하기 어려웠다.
접근Service Worker를 프록시로 활용해 여러 탭이 SSE 연결 1개만 공유하도록 설계. Clients#matchAll로 모든 탭에 이벤트 전파, 지수 백오프 재시도, SSE id 속성으로 메시지 유실 방지. CloudEvents 스키마를 AWS Glue Schema Registry에 등록해 TypeScript 인터페이스를 자동 생성했다.
결과SSE 연결 수를 탭 수 대비 1/N으로 줄여 서버 부하를 감소시키고, 프록시 환경에서도 안정적인 실시간 이벤트 전파를 달성했다.
flex
flex 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2
  2. 프론트엔드·vercel-blogVercel Blog·

    Vercel과 Shopify의 Hydrogen 전면 재설계

    Vercel과 Shopify가 Hydrogen을 오픈소스·런타임 무관 프레임워크로 전면 재설계했다. 기존 Hydrogen은 빠른 헤드리스 스토어프런트 배포를 지원했지만 플랫폼 종속성이 있었고, 새 버전은 Svelte, Nuxt, Next.js 등 어느 JavaScript 프레임워크에서도 동작한다. 3레이어 아키텍처(코어/클라이언트/서버)로 재구성하면서 각 레이어가 명확한 역할을 분담한다.

    #react#nextjs#i18n+2
  3. 프론트엔드·토스 SLASH토스 SLASH·

    es-toolkit: 사내 소형 라이브러리에서 글로벌 프로젝트로

    토스 프론트엔드 팀이 사내 공유 유틸리티 라이브러리를 발전시켜 만든 es-toolkit이 주간 npm 다운로드 2,000만 건을 넘기며 글로벌 오픈소스 프로젝트로 자리 잡은 과정을 다룬다. lodash의 구조적 한계를 넘어 현대 웹 개발 환경에 최적화된 유틸리티 라이브러리를 처음부터 설계한 경험을 정리한다.

    #lodash#open-source#tree-shaking+2