Skip to content

Cron을 없애는 Postgres 확장

Microsoft의 새로운 오픈 소스 확장 기능을 통해 Postgres 내에서 직접 내구성 있고 오류 허용 범위가 넓은 워크플로를 구축할 수 있습니다. 이는 외부 오케스트레이터와 cron 작업을 버리고 단 몇 줄의 SQL로 복잡한 파이프라인을 관리할 수 있음을 의미합니다.

Nora Vance
Hero image for: Cron을 없애는 Postgres 확장

요약 / 핵심 포인트

Microsoft의 새로운 오픈 소스 확장 기능을 통해 Postgres 내에서 직접 내구성 있고 오류 허용 범위가 넓은 워크플로를 구축할 수 있습니다. 이는 외부 오케스트레이터와 cron 작업을 버리고 단 몇 줄의 SQL로 복잡한 파이프라인을 관리할 수 있음을 의미합니다.

데이터베이스 내부의 Orchestrator

PG Durable은 Microsoft가 개발한 새로운 오픈 소스 Postgres 확장으로, 모든 사람이 Postgres 내에서 직접 내구성 있고 충돌 방지 기능이 있는 함수를 실행할 수 있도록 지원합니다. 이는 데이터베이스를 워크플로 오케스트레이터로 전환하여 외부 서비스의 필요성을 없앱니다.

오랫동안 복잡한 데이터베이스 중심 워크플로를 관리하는 것은 cron 작업, Temporal 또는 메시지 큐와 같은 외부 시스템과 씨름하는 것을 의미했습니다. PG Durable은 예약된 작업, 자동 재시도 및 장기 실행 프로세스를 데이터베이스에 기본적으로 통합하여 아키텍처를 크게 단순화함으로써 이 문제를 해결합니다.

이러한 함수를 진정으로 '내구성 있게' 만드는 것은 무엇일까요? 일반적인 `BEGIN...COMMIT` 트랜잭션과 달리, PG Durable은 함수 실행의 모든 단계에서 함수의 상태를 디스크에 유지합니다. 이는 워크플로 중간에 데이터베이스가 충돌하거나 다시 시작되더라도 프로세스가 진행 상황을 잃지 않고 중단된 지점부터 정확히 다시 시작되도록 보장합니다.

이러한 충돌 방지 보장은 판도를 바꾸는 요소입니다. 이는 사람의 개입이 필요한 승인부터 이전에는 정교한 외부 오케스트레이션을 요구했던 다단계 데이터 변환에 이르기까지 중요한 작업에 대한 강력한 오류 허용 범위를 제공합니다. 이를 데이터의 핵심에 내장된 탄력적인 워크플로 엔진이라고 생각하십시오.

새로운 SQL 슈퍼파워

데이터베이스를 쿼리하는 것뿐만 아니라 데이터베이스 내에서 직접 복잡한 워크플로를 구축한다고 상상해 보십시오. PG Durable은 새로운 SQL 슈퍼파워를 제공하여 데이터베이스를 완전한 오케스트레이터로 전환합니다. 이는 실행 흐름을 정의하는 강력한 연산자를 갖춘 SQL-네이티브 DSL을 도입합니다.

`~>`를 사용하여 작업을 순서대로 실행하거나, `&`를 사용하여 병렬로 실행하거나, `@>`를 사용하여 영구 루프를 생성할 수 있습니다. 이를 통해 SQL 문 내에서 직접 정교한 단계 그래프를 구성할 수 있으며, 복잡한 로직을 놀랍도록 간결하게 만듭니다.

PG Durable은 필수 내장 함수도 제공합니다. `df.start()`를 사용하여 워크플로를 비동기적으로 시작하고 즉시 추적을 위한 ID를 받을 수 있습니다. cron과 유사한 스케줄링이 필요하신가요? `df.wait_for_schedule`을 사용하면 지정된 시간까지 일시 중지할 수 있습니다. 사람의 승인 또는 외부 이벤트의 경우 `df.wait_for_signal`은 워크플로가 호출을 받을 때까지 대기시킵니다.

결정적으로, `df.start()`로 프로세스를 시작하면 Postgres 백그라운드 워커에서 실행됩니다. 이는 클라이언트 연결이 즉시 ID를 반환하고, 장기 실행 또는 영구적으로 반복되는 워크플로의 경우에도 차단되지 않음을 의미합니다. 데이터베이스가 무거운 작업을 처리하여 애플리케이션을 자유롭게 합니다.

300줄의 코드에서 7줄로

"90% 적은 코드"라고 말할 때, 이는 단순한 마케팅 과장이 아닙니다. 비디오의 예시를 고려해 보십시오: 큐 설정, 오류 처리, 워커 관리 및 상태 추적을 위한 300줄 이상의 상용구 코드가 단 7줄의 PG Durable SQL로 대체될 수 있습니다. 이러한 극적인 감소는 복잡한 오케스트레이션 로직을 데이터베이스 자체로 옮김으로써 가능해집니다.

메시지 큐를 관리하고, 새로운 작업을 폴링하고, 메시지 처리를 처리하고, 여러 단계에 걸쳐 상태를 추적하며, 자동 재시도를 통한 오류 처리를 구현하는 강력한 시스템을 구축한다고 상상해 보십시오. 일반적으로 이는 상당한 사용자 정의 코드 또는 외부 서비스를 필요로 합니다. PG Durable은 이 모든 것을 추상화하여 비즈니스 로직에 집중할 수 있도록 합니다.

이 간결함 덕분에 PG Durable은 특정 워크플로에서 빛을 발합니다. 다음 용도에 이상적입니다: - 안정적인 다단계 데이터 변환이 필요한 ETL 파이프라인. - 구체화된 뷰 새로 고침 또는 일일 정리 작업 실행과 같은 예약된 유지 관리. - 주문 처리 또는 송장 처리와 같은 다단계 비즈니스 로직. - 외부 호출 및 응답을 내구성 있게 관리해야 하는 API 통합 워크플로.

그 힘은 어려운 부분을 처리하는 확장 기능에 있습니다. 개발자는 더 이상 내구성, 자동 재시도 또는 복잡한 상태 관리를 위한 사용자 지정 솔루션을 구축할 필요가 없습니다. PG Durable은 이러한 기본 기능을 즉시 제공하여 최소한의 코드로 워크플로가 충돌 방지 및 자가 복구되도록 보장합니다.

장단점: 오케스트레이터를 유지해야 할 때

PG Durable의 진정한 힘은 워크플로의 로직과 상태가 이미 Postgres에 있는 데이터와 깊이 얽혀 있을 때 나타납니다. 구체화된 뷰 새로 고침 자동화, 다단계 데이터 변환 오케스트레이션, 핵심 데이터가 있는 곳에서 직접 휴먼 인 더 루프 승인 프로세스 관리와 같은 사용 사례를 완벽하게 처리합니다. 이 긴밀한 데이터베이스 내 통합은 개발을 크게 단순화하고, 외부 서비스 종속성을 제거하며, 데이터 중심 작업의 운영 오버헤드를 종종 줄여줍니다.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

그러나 외부 오케스트레이터는 더 광범위하고 복잡한 시나리오에서 여전히 강점을 가집니다. 여러 이기종 시스템에 걸쳐 있는 워크플로(다양한 플랫폼에서 마이크로서비스, 외부 API 및 클라우드 기능 조정)를 고려해 보십시오. 이러한 경우, 전용 오케스트레이터는 단일 데이터베이스를 훨씬 뛰어넘는 유연성과 강력한 통합 기능을 제공하며, 특히 SQL에 적합하지 않은 복잡한 애플리케이션 로직을 처리할 때 더욱 그렇습니다. 이러한 외부 도구는 분산 시스템 관리를 위한 전문화된 계층을 제공합니다.

설치 권한은 PG Durable에 있어 중요한 고려 사항입니다. Postgres 확장으로서 데이터베이스 인스턴스 내에 설치하고 구성하려면 특정 권한이 필요합니다. 또한 전용 백그라운드 워커를 활용하여 내구성 있는 함수를 실행하므로 데이터베이스 서버의 필수적인 부분이 됩니다. 이 아키텍처는 충돌 방지 안정성을 제공하지만, PG Durable이 데이터베이스 내 오케스트레이션을 위한 강력하고 전문화된 도구이며, 전체 인프라의 모든 오케스트레이션 문제를 위한 보편적인 대체재는 아님을 의미하기도 합니다.

자주 묻는 질문

PG Durable이란 무엇인가요?

PG Durable은 Microsoft에서 개발한 오픈 소스 PostgreSQL 확장으로, 개발자가 SQL-native DSL을 사용하여 데이터베이스 내에서 내구성 있고 오류 허용 범위가 넓은 워크플로 및 예약된 작업을 직접 생성하고 관리할 수 있도록 합니다.

PG Durable은 기존 cron 작업과 어떻게 다른가요?

단순한 스케줄러인 cron 작업과 달리, PG Durable은 상태 저장 방식의 내구성 있는 실행을 제공합니다. 워크플로는 모든 단계에서 디스크에 영구적으로 저장되므로 데이터베이스 충돌 및 재시작에도 견딜 수 있으며, 중단된 지점에서 자동으로 재시도하고 다시 시작합니다.

PG Durable은 Temporal 또는 Airflow와 같은 도구를 대체할 수 있나요?

PG Durable은 데이터베이스 중심 워크플로에 대한 훌륭한 대체재이며, 외부 서비스의 필요성을 없애줍니다. 그러나 Temporal 또는 Airflow와 같은 도구는 여러 이기종 시스템에 걸친 복잡한 오케스트레이션이나 주요 로직이 데이터베이스 외부에 있을 때 더 적합합니다.

PG Durable에 필요한 PostgreSQL 버전은 무엇인가요?

PG Durable은 최신 PostgreSQL 버전을 위해 설계되었습니다. Microsoft의 공식 Docker 이미지는 Postgres 17에서 실행되며, 최신 호환성 정보는 공식 문서를 참조하는 것이 가장 좋습니다.

PG Durable 워크플로가 외부 HTTP 호출을 할 수 있나요?

네, PG Durable은 SQL 워크플로우에서 직접 HTTP 요청을 수행하는 기능을 포함하여, 내구성 있는 함수(durable function)의 일부로 외부 API와 통합할 수 있도록 합니다.

Found this useful? Share it.

AI Reputation Report

What AI knows about you.

ChatGPT, Perplexity, Gemini, Claude & Grok are already answering questions in your category. Type your site, see who they name — you, or your competitor. Free preview.

Check my sitefree preview

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀더 알아보기

AI 트렌드를 앞서가세요

Stork.AIが엄선한 최고의 AI 도구, 에이전트, MCP 서버를 만나보세요.

P.S. 쓸 만한 걸 만드셨나요? Stork에 등록