코드 90% 줄여주는 새로운 Postgres 확장 기능

원제 · This New Postgres Extension Let's You Write 90% Less Code

6:132분 읽기Better Stack2026. 07. 10.컴퓨터/소프트웨어 · AI/미래기술

핵심 요약

pg_durable은 복잡한 워크플로우 관리를 위한 외부 시스템 의존도를 제거하고, 300줄 규모의 보일러플레이트 코드를 단 7줄의 SQL 문으로 줄여 PostgreSQL 데이터베이스 내에서 직접 장기 실행 작업을 자동화합니다.

하이라이트

  • Microsoft에서 개발한 오픈 소스 PostgreSQL 확장 기능인 pg_durable은 데이터베이스 내에서 예약 작업, 재시도, 워크플로우 관리를 처리합니다.

  • pg_durable은 장기 실행 프로세스 단계마다 상태를 디스크에 저장하여 데이터베이스 충돌이나 재시작 상황에서도 내구성을 보장합니다.

  • df_start 함수를 사용하여 SQL 기반으로 작업을 제출하고, df_status나 df_results 함수로 진행 상황과 결과를 조회할 수 있습니다.

  • cron 표현식 대기 기능과 병렬 및 순차 실행 연산자를 지원하여 외부 서비스 없이도 복잡한 자동화 스케줄을 구현합니다.

  • 300줄에 달하던 큐 설정, 워커 관리, 상태 추적, 오류 재시도 보일러플레이트 코드를 단 7줄의 SQL로 단축할 수 있습니다.

타임라인

  1. pg_durable의 개념과 필요성

    데이터베이스의 내구성을 확보하기 위해 매 단계마다 상태를 디스크에 저장하는 방식을 채택했습니다. 이 덕분에 긴 대기 시간을 요구하는 작업이나 오류 발생 시에도 안정적으로 프로세스를 처리할 수 있습니다.

    • pg_durable은 Microsoft가 개발한 오픈 소스 Postgres 확장 프로그램입니다.
    • 기존의 cron 작업이나 단순 begin-commit 블록이 해결하지 못했던 데이터베이스 충돌 및 재시작 대응 능력을 제공합니다.
    • 인간 개입이 필요한 승인 워크플로우를 외부 서비스 없이 데이터베이스 내부에서 직접 관리할 수 있습니다.
  2. 작업 자동화 및 스케줄링 예제

    구체적인 데모를 통해 1분마다 특정 프로시저를 반복 실행하여 로그 테이블에 데이터를 삽입하는 루프 설정을 보여줍니다. 외부 시스템 연결 없이 SQL만으로 복잡한 스케줄링 로직을 구현하는 방법을 명확히 제시합니다.

    • df_start 함수를 호출하여 장기 실행 프로세스를 그래프 형태로 제출하고 실행합니다.
    • 순차(sequence), 병렬, 반복(loop) 연산 기능을 사용하여 매분 실행되는 작업을 간단히 설정할 수 있습니다.
    • df_status를 통해 작업 상태를 확인하고, df_results로 최종 결과를 얻는 구조를 갖추고 있습니다.
  3. 워크플로우 관리와 코드 효율성

    주문 승인 프로세스를 통해 실질적인 워크플로우 활용 예시를 보여줍니다. Docker 환경에서 pg_durable 확장 기능을 활성화하는 방법과 함께, 복잡한 보일러플레이트 코드가 자동화된 연산 기능으로 인해 얼마나 극적으로 간소화되는지 비교합니다.

    • df_signal 함수를 사용하여 대기 중인 워크플로우에 외부 승인 신호를 전달할 수 있습니다.
    • 최대 24시간까지 승인을 기다리며 조건에 따라 주문 상태를 자동으로 업데이트하는 로직 구현이 가능합니다.
    • 기존의 300줄짜리 큐 및 워커 관리 코드를 7줄의 간결한 SQL로 대체할 수 있습니다.

설명

pg_durable is a new open-source PostgreSQL extension that runs durable, crash-proof workflows right inside the database. The queue, worker, retry logic, and crash recovery you'd normally hand-build collapse into a few lines of SQL. If you've been running Temporal, cron, or a background worker just for durable execution, watch this first. 🔗 Relevant Links https://microsoft.github.io/pg_durable ❤️ More about us Radically better observability stack: https://betterstack.com/ Written tutorials: https://betterstack.com/community/ Example projects: https://github.com/BetterStackHQ 📱 Socials Twitter: https://twitter.com/betterstackhq Instagram: https://www.instagram.com/betterstackhq/ TikTok: https://www.tiktok.com/@betterstack LinkedIn: https://www.linkedin.com/company/betterstack 📌 Chapters:

커뮤니티 글

모든 글 보기
이 영상에 대해 글쓰기