AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Supabase 팁 – Realtime과 Pipelines를 선택하는 기준

Supabase Realtime과 Pipelines는 모두 Postgres 변경 사항을 읽지만 목적이 다르다. Realtime은 사용자의 브라우저나 앱에 지금 일어난 일을 빠르게 보여주는 도구이고, Pipelines는 운영 DB의 변경분을 분석 시스템으로 안정적으로 옮기는 CDC(Change Data Capture) 도구다.

한 줄 기준

필요선택
사용자가 화면에서 바로 변화를 봐야 한다Realtime
모든 변경분이 빠짐없이 데이터 웨어하우스에 도착해야 한다Pipelines

Realtime의 질문은 “사용자에게 방금 일어난 일을 어떻게 보여줄까”다. Pipelines의 질문은 “운영 데이터를 분석 목적지로 어떻게 안정적으로 옮길까”다.

Realtime이 맞는 경우

Realtime은 WebSocket 기반의 live experience를 만든다.

  • 채팅 메시지를 즉시 표시
  • 공동 편집에서 커서·타이핑 상태 표시
  • 대시보드 숫자와 차트 갱신
  • 알림, presence, 멀티플레이어 상태 동기화

Realtime의 Postgres Changes는 WAL을 읽고 RLS(Row Level Security)를 확인한 뒤 구독자에게 이벤트를 보낸다. 그러나 일반적인 메시지 큐처럼 모든 이벤트 전달을 보장하지 않는다. 사용자가 끊겨 있는 동안 발생한 변경은 놓칠 수 있다.

Pipelines가 맞는 경우

Pipelines는 managed CDC 파이프라인이다. Postgres 테이블의 INSERT, UPDATE, DELETE, TRUNCATE를 읽어 분석 목적지로 복제한다.

  • 운영 DB를 데이터 웨어하우스로 복제
  • 제품 분석, BI, 리포팅용 데이터 이동
  • 장애나 재연결 후에도 변경분을 이어서 처리
  • full copy 이후 지속 스트리밍

Pipelines는 permanent replication slot을 쓰며 at-least-once delivery를 제공한다. 목적지가 잠시 실패해도 마지막 처리 위치에서 다시 시작할 수 있다. 대신 장시간 멈추면 WAL 보존으로 DB 디스크 사용량이 커질 수 있다.

가장 큰 차이

항목RealtimePipelines
대상사용자 앱·브라우저분석 시스템
전달 보장best effortat-least-once
연결 끊김 후 catch-up일반적으로 없음있음
replication slot임시영구
RLS 반영구독자별 확인publication 범위 전체 읽기
최적화 방향낮은 지연 시간완전성·복구성

설계 팁

사용자 경험에는 Realtime을 쓰고, 데이터 정합성과 분석에는 Pipelines를 쓴다. 둘을 대체재로 보지 않는 편이 안전하다. 예를 들어 주문 상태 화면은 Realtime으로 갱신하고, 주문 이벤트 분석 테이블은 Pipelines로 웨어하우스에 보낸다.

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)