피드로 돌아가기
Dev.toDatabase
원문 읽기
외부 스케줄러 없이 PostgreSQL 내부에서 SQL 작업을 자동화하는 pg_cron 아키텍처
Supabase pg_cron Complete Guide — Automate Scheduled Jobs in PostgreSQL
AI 요약
Context
별도의 external infrastructure 없이 데이터베이스 내부에서 주기적 작업을 처리해야 하는 요구사항 발생. 기존 외부 스케줄러 도입 시 발생하는 네트워크 지연과 관리 포인트 증가라는 아키텍처적 복잡성 해결 필요.
Technical Solution
- PostgreSQL Extension 기반의 pg_cron을 통한 DB 내부 스케줄링 엔진 통합
- SQL 구문 및 PL/pgSQL 함수 직접 실행을 통한 Transaction-safe한 작업 보장
- cron.schedule 함수 기반의 유연한 주기 설정으로 데이터 정제 및 리포트 생성 자동화
- pg_net 확장 프로그램과의 결합을 통한 외부 Edge Functions HTTP 호출 트리거 구조 설계
- cron.job_run_details 뷰를 활용한 실행 이력 및 실패 상태의 실시간 모니터링 체계 구축
- UTC 기준의 시간 설정 체계를 통한 글로벌 표준 스케줄링 관리
실천 포인트
1. 단순 데이터 정제 및 집계 작업은 외부 앱 레이어가 아닌 DB 내부 pg_cron으로 처리하여 네트워크 오버헤드 제거
2. 복잡한 비즈니스 로직은 PL/pgSQL 함수로 캡슐화한 후 pg_cron으로 호출하여 관리 효율성 증대
3. 외부 API 연동이 필요한 경우 pg_net과 조합하여 Event-Driven 아키텍처로 확장 검토
4. UTC 기준 시간 설정을 통한 타임존 불일치 문제 사전 방지