피드로 돌아가기
Dev.toBackend
원문 읽기
SSE, WebSocket, waitUntil 기반의 서버리스 백엔드 인프라 최적화
Supabase Edge Functions Advanced — Streaming, WebSockets, and Background Jobs
AI 요약
Context
단순 REST 핸들러 중심의 서버리스 환경에서 발생하는 LLM 응답 지연 및 실시간 통신 부재 문제를 분석. CPU 타임 제한과 메모리 제약으로 인해 무거운 작업 수행 시 클라이언트 응답 시간이 증가하는 병목 현상 발생.
Technical Solution
- LLM 출력의 블로킹 방지를 위해 SSE(Server-Sent Events) 기반의 Streaming Response 구조 설계
- Deno.upgradeWebSocket을 활용한 프로토콜 업그레이드로 서버리스 환경 내 양방향 실시간 통신 구현
- EdgeRuntime.waitUntil 도입을 통한 응답 즉시 반환 및 백그라운드 분석 파이프라인 비동기 처리
- pg_cron 확장 기능을 통한 특정 스케줄 기반의 Edge Function 호출 자동화 체계 구축
- 지수 백오프(Exponential Backoff)와 Jitter를 적용한 외부 API 호출의 안정성 및 재시도 로직 구현
- Isolate 단위 메모리 한계를 극복하기 위한 Redis 또는 Supabase Realtime 기반의 상태 관리 전략 채택
실천 포인트
1. LLM 연동 시 사용자 경험 개선을 위해 SSE 스트리밍 적용 여부 검토
2. 응답 속도 최적화를 위해 무거운 로직을 waitUntil로 분리하여 Fire-and-Forget 패턴 적용
3. WebSocket 사용 시 Isolate별 독립 메모리 특성을 고려하여 분산 환경의 상태 동기화 방안 마련
4. 외부 API 의존성 해결을 위해 Exponential Backoff 기반의 재시도 메커니즘 구현