이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
IT 개발 팀은 종종 회사의 핵심 제품 또는 서비스를 지원하는 백엔드 애플리케이션을 구축하고 유지 관리하는 일을 담당합니다. 이러한 응용 프로그램은 일반적으로 다양한 다른 시스템과 상호 작용해야 합니다. 때로는 같은 회사 내에서, 때로는 외부 파트너 또는 고객과도 상호 작용해야 합니다.
태스크 오케스트레이션은 사전 정의된 순서로 일련의 태스크를 자동으로 실행하는 프로세스를 나타내는 용어입니다. 이는 특정 순서로 실행해야 하는 다양한 작업이 있고 이러한 작업을 다른 시스템과 조정해야 하는 백엔드 애플리케이션 시나리오에서 유용할 수 있습니다.
백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 방법에는 여러 가지가 있습니다. 이 기사에서는 가장 널리 사용되는 몇 가지 방법을 살펴보고 사용 시기와 방법에 대한 실용적인 조언을 제공합니다.
백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 한 가지 방법은 데이터베이스 트리거를 사용하는 것입니다. 데이터베이스 트리거는 데이터베이스에서 특정 이벤트가 발생할 때 자동으로 실행되는 코드 조각입니다.
예를 들어 새 주문이 있을 때마다 고객에게 이메일을 보내야 하는 백엔드 애플리케이션이 있다고 가정해 보겠습니다. 데이터베이스 트리거를 사용하여 새 주문이 데이터베이스에 삽입될 때마다 이메일을 보내는 코드를 자동으로 실행할 수 있습니다.
데이터베이스 트리거는 작업 오케스트레이션을 구현하는 편리한 방법일 수 있지만 양날의 검이 될 수도 있습니다. 한편으로는 작업 실행을 자동화하고 이러한 작업을 다른 시스템과 쉽게 조정할 수 있습니다. 반면에 코드를 이해하고 유지하기 어렵게 만들 수 있습니다.
작업 오케스트레이션에 데이터베이스 트리거를 사용하기로 결정한 경우 다른 접근 방식에 비해 분명한 이점을 제공하는 경우에만 이를 신중하게 사용하는 것이 중요합니다.
백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 또 다른 인기 있는 방법은 메시지 대기열을 사용하는 것입니다. 메시지 대기열은 메시지를 저장하고 FIFO(First-In, First-Out) 순서로 소비자에게 전달하는 시스템입니다.
메시지 대기열은 종종 작업자와 함께 사용됩니다. 작업자는 백그라운드에서 실행되고 메시지 대기열의 메시지를 사용하는 프로세스입니다. 이전 섹션의 이메일 예에서 작업자는 고객에게 이메일을 보낼 책임이 있습니다.
메시지 대기열은 서로 다른 시스템 간의 작업을 조정하는 데 사용할 수 있기 때문에 작업 오케스트레이션을 구현하는 유연한 방법입니다. 예를 들어 메시지 대기열을 사용하여 백엔드 애플리케이션과 프런트엔드 애플리케이션 간의 작업 실행을 조정할 수 있습니다.
cron 작업은 특정 시간 또는 간격으로 자동으로 실행되는 작업입니다. Cron 작업은 일반적으로 백업 스크립트 실행 또는 관리자에게 보고서 보내기와 같은 시스템 유지 관리 작업을 수행하는 데 사용됩니다.
Cron 작업은 백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 데에도 사용할 수 있습니다. 예를 들어 cron 작업을 사용하여 주문이 배송되기 24시간 전에 고객에게 미리 알림 이메일을 보낼 수 있습니다.
Cron 작업은 작업 오케스트레이션을 구현하는 간단하고 효과적인 방법이지만 약간 유연하지 않을 수 있습니다. 예를 들어 cron 작업 실행을 다른 시스템과 조정하는 것은 어려울 수 있습니다.
Lambda 함수는 이벤트에 대한 응답으로 실행되는 함수 유형입니다. Lambda 함수는 일반적으로 Amazon S3 또는 Amazon DynamoDB와 같은 소스의 이벤트를 처리하는 데 사용됩니다.
Lambda 함수는 백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 데에도 사용할 수 있습니다. 예를 들어 Lambda 함수를 사용하여 메시지 대기열의 이벤트 스트림을 처리하고 해당 이메일을 고객에게 보낼 수 있습니다.
Lambda 함수는 작업 오케스트레이션을 구현하는 유연한 방법이지만 디버그 및 문제 해결이 약간 어려울 수 있습니다.
백엔드 애플리케이션에서 작업 오케스트레이션을 구현하는 방법에는 여러 가지가 있습니다. 응용 프로그램에 대한 최상의 접근 방식은 작업의 복잡성, 관련된 시스템 수 및 개발 팀의 기술을 비롯한 여러 요인에 따라 달라집니다.
애플리케이션에 가장 적합한 접근 방식이 무엇인지 확실하지 않은 경우 데이터베이스 트리거 또는 cron 작업과 같은 간단한 접근 방식으로 시작하는 것이 좋습니다. 작동하는 솔루션이 있으면 항상 코드를 리팩터링하여 메시지 대기열 또는 Lambda 함수와 같은 더 복잡한 접근 방식을 사용할 수 있습니다.