

# 지속성 함수 또는 Step Functions
<a name="durable-step-functions"></a>

Lambda 지속성 함수와 AWS Step Functions를 모두 사용하면 자동 상태 관리 및 장애 복구를 통해 신뢰할 수 있는 워크플로 오케스트레이션이 가능합니다. 다양한 개발자 선호 및 아키텍처 패턴을 충족합니다. 지속성 함수는 Lambda 내 애플리케이션 개발에 최적화되어 있으며, Step Functions는 AWS 서비스 간 워크플로 오케스트레이션을 위해 개발되었습니다.

## 지속성 함수를 사용하는 경우
<a name="durable-sfn-when-durable"></a>

지속성 함수를 사용하는 경우:
+ 팀이 표준 프로그래밍 언어 및 익숙한 개발 도구를 선호하는 경우
+ 애플리케이션 로직이 주로 Lambda 함수 내에 있는 경우
+ 코드의 실행 상태를 세밀하게 제어하려는 경우
+ 워크플로와 비즈니스 로직을 강하게 결합하여 Lambda 중심 애플리케이션을 구축하는 경우
+ 코드와 시각적/JSON 디자이너 간에 전환하지 않고 빠르게 반복하려는 경우

## Step Functions를 사용해야 하는 경우
<a name="durable-sfn-when-step"></a>

Step Functions를 사용하는 경우:
+ 팀 간 가시성을 위해 시각적 워크플로 표현이 필요한 경우
+ 여러 AWS 서비스를 오케스트레이션하고 사용자 지정 SDK 코드 없이 네이티브 통합을 원하는 경우
+ 제로 유지 관리 인프라가 필요한 경우(패치, 런타임 업데이트 필요 없음)
+ 기술과 관련되지 않은 이해관계자가 워크플로 로직을 이해하고 검증해야 하는 경우

## 결정 프레임워크
<a name="durable-sfn-decision-framework"></a>

다음 질문을 사용하여 사용 사례에 적합한 서비스를 결정합니다.
+ **주요 초점은 무엇입니까?** Lambda 내 애플리케이션 개발 → 지속성 함수. AWS 간 워크플로 오케스트레이션 → Step Functions.
+ **선호하는 프로그래밍 모델은 무엇입니까?** 표준 프로그래밍 언어 → 지속성 함수. 그래프 기반 DSL 또는 시각적 디자이너 → Step Functions.
+ **관련된 AWS 서비스는 몇 개입니까?** 주로 Lambda → 지속성 함수. 여러 AWS 서비스 → Step Functions.
+ **어떤 개발 도구를 사용합니까?** Lambda 개발자 경험, LLM 에이전트를 사용한 IDE, 프로그래밍 언어별 유닛 테스트 프레임워크, AWS SAM, AWS CDK, AWS 도구 키트 → 지속성 함수. 시각적 워크플로 빌더, 워크플로 모델링을 위한 AWS CDK → Step Functions.
+ **누가 인프라를 관리합니까?** Lambda 내에서 유연성을 원함 → 지속성 함수. 완전관리형, 제로 유지 관리를 원함 → Step Functions.

## 기능 비교
<a name="durable-sfn-comparison"></a>

다음 표에서는 Step Functions 및 Lambda 지속성 함수의 주요 기능을 비교합니다.


| 기능 | AWS Step Functions | Lambda 지속성 함수 | 
| --- | --- | --- | 
| 기본 포커스 | AWS 간 워크플로 오케스트레이션 | Lambda 내 애플리케이션 개발 | 
| 서비스 유형 | 독립 실행형 전용 워크플로 서비스 | Lambda 내에서 실행 | 
| 프로그래밍 모델 | 그래프 기반, Amazon States Language DSL 또는 AWS CDK | 표준 프로그래밍 언어(JavaScript/TypeScript, Python) | 
| 개발 도구 | 콘솔/AWS 도구 키트 IDE 확장의 시각적 빌더, AWS CDK  | IDE 및 LLM 에이전트 내의 Lambda DX, 유닛 테스트 프레임워크, AWS SAM, AWS 도구 키트 IDE 확장 | 
| 통합 | 220개 이상의 AWS 서비스, 16,000개 API | Lambda 이벤트 중심 프로그래밍 모델 확장(이벤트 소스) | 
| 관리 | 완전관리형, 런타임에 구애받지 않음, 제로 유지 관리(패치, 런타임 업데이트 필요 없음) | Lambda 환경 내에서 관리됨 | 
| 최적의 용도 | 비즈니스 프로세스 및 IT 자동화, 데이터 처리, AI 워크플로 | 분산 트랜잭션, 상태 저장 애플리케이션 로직, 함수 오케스트레이션, 데이터 처리, AI 워크플로 | 

## 하이브리드 아키텍처
<a name="durable-sfn-hybrid"></a>

많은 애플리케이션에서 두 서비스를 모두 사용하면 이점을 얻을 수 있습니다. 일반적인 패턴은 Lambda 내의 애플리케이션 수준 로직에 지속성 함수를 사용하는 것이지만, Step Functions는 Lambda 함수 이외의 여러 AWS 서비스에서 상위 수준 워크플로를 조정합니다.

## 마이그레이션 고려 사항
<a name="durable-sfn-migration"></a>

**단순하게 시작하여 복잡하게 진화:** Lambda 중심 워크플로의 경우 지속성 함수로 시작합니다. 다중 서비스 오케스트레이션 또는 시각적 워크플로 설계가 필요한 경우 Step Functions를 추가합니다.

**기존 Step Functions 사용자:** 확립된 교차 서비스 워크플로를 위해 Step Functions를 유지합니다. 신뢰성이 필요한 새로운 Lambda 애플리케이션 로직에는 지속성 함수를 고려하세요.

## 관련 리소스
<a name="durable-sfn-related"></a>
+ [Lambda 지속성 함수](durable-functions.md)
+ [Step Functions로 Lambda 함수 오케스트레이션](with-step-functions.md)
+ [지속성 함수 시작하기](durable-getting-started.md)