피드로 돌아가기
Dev.toBackend
원문 읽기
WebSocket 기반 3가지 모드로 구현한 고효율 실시간 데이터 동기화 아키텍처
Supabase Realtime — Postgres Changes, Presence, and Broadcast
AI 요약
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 채널 해제 로직 검토