피드로 돌아가기
Supabase Realtime — Postgres Changes, Presence, and Broadcast
Dev.toDev.to
Backend

WebSocket 기반 3가지 모드로 구현한 고효율 실시간 데이터 동기화 아키텍처

Supabase Realtime — Postgres Changes, Presence, and Broadcast

kanta13jp12026년 4월 29일2intermediate

Context

기존 Polling 방식의 높은 리소스 비용과 Push Notification의 느린 전달 속도라는 한계점 존재. DB 상태 변경과 사용자 상태 공유를 실시간으로 처리하기 위한 저지연 통신 구조 필요.

Technical Solution

  • DB 변경 사항의 즉각적인 전파를 위한 Postgres Changes 구독 모델 설계
  • WebSocket 기반 채널을 통한 INSERT, UPDATE, DELETE 이벤트의 실시간 Payload 전달
  • DB 부하 최소화를 위해 상태 저장 없이 메시지를 교환하는 Broadcast 모드 도입
  • 유저의 접속 상태 및 메타데이터 동기화를 위한 Presence Sync 메커니즘 구현
  • 메모리 누수 방지를 위한 dispose 단계의 removeChannel() 호출 강제화
  • 서비스 요구사항에 따라 DB 경유 여부를 선택하는 계층적 메시징 전략 채택

1. 데이터 영속성이 필요한 알림은 Postgres Changes 사용

2. 단순 UI 상태 공유(타이핑 표시 등)는 DB를 우회하는 Broadcast 채널 활용

3. 동시 접속자 상태 관리는 Presence API를 통한 상태 동기화 적용

4. 클라이언트 라이프사이클에 맞춘 WebSocket 채널 해제 로직 검토

원문 읽기