

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Flow Framework Java 참조용
<a name="reference"></a>

**Topics**
+ [AWS Flow Framework Java 주석용](annotations.md)
+ [AWS Flow Framework Java 예외](errorhandling.exceptions.md)
+ [AWS Flow Framework Java 패키지용](awsflow.packages.md)

# AWS Flow Framework Java 주석용
<a name="annotations"></a>

**Topics**
+ [@활동](#annotations-activities)
+ [@활동](#annotations-activity)
+ [@ActivityRegistrationOptions](#annotations-activityregistration)
+ [@비동기식](#annotations-asynchronous)
+ [@실행](#annotations-execute)
+ [@ExponentialRetry](#annotations-exponentialretry)
+ [@GetState](#annotations-getstate)
+ [@ManualActivityCompletion](#annotations-manualactivitycompletion)
+ [@신호](#annotations-signal)
+ [@SkipRegistration](#annotations-skipregistration)
+ [@Wait 및 @NoWait](#annotations-waitnowait)
+ [@워크플로](#annotations-workflow)
+ [@WorkflowRegistrationOptions](#annotations-workflowregistrationoptions)

## @활동
<a name="annotations-activities"></a>

인터페이스에서 이 주석을 사용하여 일련의 활동 유형을 선언할 수 있습니다. 이 주석이 달린 인터페이스의 각 메서드는 활동 유형을 나타냅니다. 한 인터페이스에 `@Workflow` 및 `@Activities` 주석이 둘 다 있을 수는 없습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`activityNamePrefix`  
인터페이스에서 선언된 활동 유형의 이름에 붙일 접두사를 지정합니다. 기본값인 빈 문자열로 설정된 경우 '.' 앞에 있는 인터페이스 이름이 접두사로 사용됩니다.

`version`  
인터페이스에서 선언된 활동 유형의 기본 버전을 지정합니다. 기본값은 `1.0`입니다.

`dataConverter`  
이 활동 유형의 작업 및 그 결과 생성 시 데이터 직렬화/역직렬화에 사용할 `DataConverter`의 유형을 지정합니다. `NullDataConverter`를 기본값으로 설정합니다. 이 값은 `JsonDataConverter`를 사용해야 함을 뜻합니다.

## @활동
<a name="annotations-activity"></a>

이 주석은 `@Activities`가 주석으로 달린 인터페이스 내의 메서드에서 사용할 수 있습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`name`  
활동 유형의 이름을 지정합니다. 기본값은 빈 문자열입니다. 이는 활동 유형의 이름을 정할 때 기본 접두사 및 활동 메서드 이름을 사용해야 함을 뜻합니다(\$1*접두사*\$1\$1*이름*\$1 형식). `@Activity` 주석에서 이름을 지정하는 경우 프레임워크에서는 그 이름에 접두사를 자동으로 붙이지 않는다는 점에 유의하십시오. 고유한 이름 지정 체계를 자유롭게 사용할 수 있습니다.

`version`  
활동 유형의 버전을 지정합니다. 이렇게 하면 포함된 인터페이스의 `@Activities` 주석에 지정된 기본 버전이 재정의됩니다. 기본값은 빈 문자열입니다.

## @ActivityRegistrationOptions
<a name="annotations-activityregistration"></a>

활동 유형의 등록 옵션을 지정합니다. 이 주석은 `@Activities`가 주석으로 달린 인터페이스 또는 이 인터페이스 내의 메서드에서 사용할 수 있습니다. 두 군데에서 모두 지정하면 메서드에서 사용되는 주석이 적용됩니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`defaultTasklist`  
이 활동 유형에 대해 Amazon SWF에 등록할 기본 작업 목록을 지정합니다. 이 기본값은 `ActivitySchedulingOptions` 파라미터를 사용하는 생성된 클라이언트의 활동 메서드를 호출할 때 재정의할 수 있습니다. `USE_WORKER_TASK_LIST`를 기본값으로 설정합니다. 이 값은 등록을 수행 중인 작업자가 사용하는 작업 목록을 사용해야 함을 나타내는 특수 값입니다.

`defaultTaskScheduleToStartTimeoutSeconds`  
이 활동 유형에 대해 Amazon SWF에 등록할 defaultTaskScheduleToStartTimeout을 지정합니다. 이것은 이 활동 유형의 작업이 작업자에게 할당될 때까지 대기하도록 허용되는 최대 시간입니다. 자세한 내용은 *Amazon Simple Workflow Service API 참조*를 참조하십시오.

`defaultTaskHeartbeatTimeoutSeconds`  
이 활동 유형에 대해 Amazon SWF에 등록될 `defaultTaskHeartbeatTimeout`을 지정합니다. 활동 작업자는 이 시간 내에 하트비트를 제공해야 합니다. 그러지 않으면 작업이 제한 시간을 초과하게 됩니다. 이 제한 시간을 비활성화해야 함을 암시하는 특수 값인 -1이 기본값으로 설정됩니다. 자세한 내용은 *Amazon Simple Workflow Service API 참조*를 참조하십시오.

`defaultTaskStartToCloseTimeoutSeconds`  
이 활동 유형에 대해 Amazon SWF에 등록할 defaultTaskStartToCloseTimeout을 지정합니다. 이 제한 시간을 통해 작업자가 이 유형의 활동 작업을 처리하는 데 허용되는 최대 시간이 결정됩니다. 자세한 내용은 *Amazon Simple Workflow Service API 참조*를 참조하십시오.

`defaultTaskScheduleToCloseTimeoutSeconds`  
이 활동 유형에 대해 Amazon SWF에 등록될 `defaultScheduleToCloseTimeout`을 지정합니다. 이 제한 시간을 통해 작업이 개방 상태에 머물 수 있는 총 시간이 결정됩니다. 이 제한 시간을 비활성화해야 함을 암시하는 특수 값인 -1이 기본값으로 설정됩니다. 자세한 내용은 *Amazon Simple Workflow Service API 참조*를 참조하십시오.

## @비동기식
<a name="annotations-asynchronous"></a>

워크플로 조정 로직에 있는 메서드에서 사용되는 경우 메서드를 비동기식으로 실행해야 함을 나타냅니다. 메서드를 호출하면 즉시 결과를 반환하지만, 실제 실행은 메서드로 전달된 모든 Promise<> 파라미터가 준비 상태가 될 때 비동기식으로 이루어집니다. @Asynchronous라는 주석이 달린 메서드에는 Promise<> 또는 void 반환 유형이 있어야 합니다.

`daemon`  
비동기식 메서드에 대해 생성된 작업이 대몬(daemon) 작업인지 여부를 나타냅니다. 기본적으로 `False`로 설정됩니다.

## @실행
<a name="annotations-execute"></a>

`@Workflow` 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 워크플로의 진입점을 식별합니다.

**중요**  
인터페이스에 있는 메서드 하나만 `@Execute`로 장식할 수 있습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`name`  
워크플로 유형의 이름을 지정합니다. 설정되지 않은 경우 이름은 \$1*접두사*\$1\$1*이름*\$1으로 기본 설정됩니다. 여기에서 \$1*접두사*\$1는 '.' 앞에 있는 워크플로 인터페이스의 이름이고 \$1*이름*\$1은 워크플로에 있는 `@Execute` 장식 메서드의 이름입니다.

`version`  
워크플로 유형의 버전을 지정합니다.

## @ExponentialRetry
<a name="annotations-exponentialretry"></a>

활동 또는 비동기식 메서드에서 사용되는 경우 메서드에서 미처리 예외가 발생하면 기하급수적 재시도 정책을 설정합니다. 재시도는 시도 회수의 제곱으로 계산되는 백오프 기간 이후에 이루어집니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`intialRetryIntervalSeconds`  
첫 번째 재시도가 이루어질 때까지 대기할 시간을 지정합니다. 이 값은 `maximumRetryIntervalSeconds` 및 `retryExpirationSeconds`보다 커서는 안 됩니다.

`maximumRetryIntervalSeconds`  
재시도 사이의 최대 시간 간격을 지정합니다. 최대 시간에 이르면 재시도 간격은 이 값으로 제한됩니다. 무제한 시간을 뜻하는 -1이 기본값으로 설정됩니다.

`retryExpirationSeconds`  
기하급수적 재시도가 중단되는 시간을 지정합니다. 만료가 없음을 뜻하는 -1이 기본값으로 설정됩니다.

`backoffCoefficient`  
재시도 간격을 계산하는 데 사용되는 계수를 지정합니다. [기하급수적 재시도 전략](features-retry.md#features-retry-exponential)을(를) 참조하세요.

`maximumAttempts`  
기하급수적 재시도가 중단되는 시도 회수를 지정합니다. 재시도 횟수에 제한이 없음을 뜻하는 -1이 기본값으로 설정됩니다.

`exceptionsToRetry`  
재시도를 트리거해야 하는 예외 유형의 목록을 지정합니다. 이 유형의 미처리 예외는 더 전파되지 않고, 메서드는 계산된 재시도 간격이 지나면 재시도됩니다. 기본적으로 목록에는 `Throwable`이 포함됩니다.

`excludeExceptions`  
재시도를 트리거해서는 안 되는 예외 유형의 목록을 지정합니다. 이 유형의 미처리 예외가 전파되도록 허용됩니다. 목록은 기본적으로 비어 있습니다.

## @GetState
<a name="annotations-getstate"></a>

`@Workflow` 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 이 메서드가 최신 워크플로 실행 상태를 조회하는 데 사용되는지 식별합니다. `@Workflow`라는 주석이 달린 인터페이스에는 이 주석이 달린 메서드가 최대 한 개 있을 수 있습니다. 이 주석이 달린 메서드에서는 파라미터를 받아들여서는 안 되고 `void`가 아닌 반환 유형이 있어야 합니다.

## @ManualActivityCompletion
<a name="annotations-manualactivitycompletion"></a>

활동 메서드에서 이 주석을 사용하여, 메서드에서 결과가 반환될 때 활동 작업이 완료되어서는 안 됨을 나타낼 수 있습니다. 활동 작업은 자동으로 완료되지 않으므로 Amazon SWF API를 사용하여 직접 수동으로 완료해야 합니다. 이 기능은 활동 작업이 자동화되지 않은 일부 외부 시스템에 위임되거나 완료를 위해 인간의 개입이 필요한 경우의 사용 사례로 유용합니다.

## @신호
<a name="annotations-signal"></a>

 `@Workflow` 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 인터페이스에서 선언한 워크플로 유형의 실행에서 수신할 수 있는 신호를 식별합니다. 이 주석을 사용하려면 신호 메서드를 정의해야 합니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`name`  
신호 이름의 이름 부분을 지정합니다. 지정하지 않을 경우 메서드의 이름이 사용됩니다.

## @SkipRegistration
<a name="annotations-skipregistration"></a>

`@Workflow` 주석이 붙은 인터페이스에서 사용되는 경우 워크플로 유형이 Amazon SWF에 등록되어서는 안 됨을 나타냅니다. `@Workflow`라는 주석이 달린 인터페이스에서는 `@WorkflowRegistrationOptions` 및 `@SkipRegistrationOptions` 주석 둘 다가 아닌 둘 중 하나를 사용해야 합니다.

## @Wait 및 @NoWait
<a name="annotations-waitnowait"></a>

이러한 주석은 유형의 파라미터에 사용하여 AWS Flow Framework for Java가 메서드를 실행`Promise<>`하기 전에 준비 상태가 될 때까지 기다려야 하는지 여부를 나타낼 수 있습니다. 기본적으로 `@Asynchronous` 메서드로 전달되는 `Promise<>` 파라미터는 메서드가 실행되기 전에 준비 상태가 되어야 합니다. 어떤 상황에서는 이 기본 동작을 재정의해야 합니다. `@Asynchronous` 메서드로 전달되고 `@NoWait`라는 주석이 달린 `Promise<>` 파라미터는 대기 대상이 아닙니다.

`List<Promise<Int>>`와 같이 약속이 포함된 모음 파라미터(또는 약속의 하위 클래스)는 `@Wait`라는 주석이 달려 있어야 합니다. 기본적으로 프레임워크에서는 모음의 멤버를 기다리지 않습니다.

## @워크플로
<a name="annotations-workflow"></a>

인터페이스에서 *워크플로* 유형을 선언할 때 이 주석이 사용됩니다. 워크플로에 대해 진입점을 선언하려면 이 주석으로 장식된 인터페이스에 [@실행](#annotations-execute) 주석으로 장식된 메서드가 정확히 한 개 포함되어 있어야 합니다.

**참고**  
인터페이스에는 동시에 선언된 `@Workflow` 및 `@Activities` 주석이 둘 다 있을 수 없습니다. 이 둘은 상호 배타적입니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

`dataConverter`  
이 워크플로 유형의 워크플로 실행에 요청을 전송하고 그로부터 결과를 수신할 때 사용할 `DataConverter`를 지정합니다.  
기본값은 모든 요청 및 응답 데이터를 JavaScript Object Notation(JSON)으로 처리하기 위해 결국 `JsonDataConverter`로 폴백하는 `NullDataConverter`입니다.

### 예시
<a name="example"></a>

```
import com.amazonaws.services.simpleworkflow.flow.annotations.Execute;
import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow;
import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions;

@Workflow
@WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600)
public interface GreeterWorkflow {
   @Execute(version = "1.0")
   public void greet();
}
```

## @WorkflowRegistrationOptions
<a name="annotations-workflowregistrationoptions"></a>

`@Workflow` 주석이 달린 인터페이스에서 사용되는 경우 워크플로 유형 등록 시 Amazon SWF에서 사용한 기본 설정을 제공합니다.

**참고**  
`@Workflow`라는 주석이 달린 인터페이스에서는 `@WorkflowRegistrationOptions` 또는 `@SkipRegistrationOptions` 주석을 사용해야 합니다. 둘 다 지정할 수는 없습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

설명  
워크플로 유형에 대한 텍스트 설명(선택 사항)입니다.

`defaultExecutionStartToCloseTimeoutSeconds`  
워크플로 유형에 대해 Amazon SWF에 등록될 `defaultExecutionStartToCloseTimeout`을 지정합니다. 이것은 이 유형의 워크플로 실행이 완료되는 데 걸리는 최대 시간입니다.  
워크플로 제한 시간에 대한 자세한 내용은 [Amazon SWF 제한 시간 유형](swf-timeout-types.md) 단원을 참조하십시오.

`defaultTaskStartToCloseTimeoutSeconds`  
워크플로 유형에 대해 Amazon SWF에 등록될 `defaultTaskStartToCloseTimeout`을 지정합니다. 이것은 이 유형의 워크플로 실행에 대한 결정 작업 하나가 완료되는 데 허용되는 시간입니다.  
`defaultTaskStartToCloseTimeout`을 지정하지 않으면 30초로 기본 설정됩니다.  
워크플로 제한 시간에 대한 자세한 내용은 [Amazon SWF 제한 시간 유형](swf-timeout-types.md) 단원을 참조하십시오.

`defaultTaskList`  
이 워크플로 유형의 실행에 대한 결정 작업에 사용되는 기본 작업 목록입니다. 여기에 설정된 기본값은 워크플로 실행을 시작할 때 `StartWorkflowOptions`를 사용하여 재정의할 수 있습니다.  
`defaultTaskList`를 지정하지 않으면 `USE_WORKER_TASK_LIST`로 기본 설정됩니다. 이 값은 워크플로 등록을 수행 중인 작업자가 사용하는 작업 목록을 사용해야 함을 나타냅니다.

`defaultChildPolicy`  
이 유형의 실행이 종료된 경우 하위 워크플로에 사용할 정책을 지정합니다. 기본값은 `ABANDON`입니다. 가능한 값은 다음과 같습니다.  
+ `ABANDON` – 하위 워크플로 실행이 계속 실행되도록 합니다
+ `TERMINATE` – 하위 워크플로 실행을 종료합니다
+ `REQUEST_CANCEL` – 하위 워크플로 실행의 취소를 요청합니다

# AWS Flow Framework Java 예외
<a name="errorhandling.exceptions"></a>

Java AWS Flow Framework 용 에서는 다음과 같은 예외가 사용됩니다. 이 단원에서는 예외에 대한 개요를 제공합니다. 자세한 내용은 개별 예외에 대한 AWS SDK for Java 설명서를 참조하세요.

**Topics**
+ [ActivityFailureException](#errorhandling.exceptions.ActivityFailureException)
+ [ActivityTaskException](#errorhandling.exceptions.ActivityTaskException)
+ [ActivityTaskFailedException](#errorhandling.exceptions.ActivityTaskFailedException)
+ [ActivityTaskTimedOutException](#errorhandling.exceptions.ActivityTaskTimedOutException)
+ [ChildWorkflowException](#errorhandling.exceptions.ChildWorkflowException)
+ [ChildWorkflowFailedException](#errorhandling.exceptions.ChildWorkflowFailedException)
+ [ChildWorkflowTerminatedException](#errorhandling.exceptions.ChildWorkflowTerminatedException)
+ [ChildWorkflowTimedOutException](#errorhandling.exceptions.ChildWorkflowTimedOutException)
+ [DataConverterException](#errorhandling.exceptions.DataConverterException)
+ [DecisionException](#errorhandling.exceptions.DecisionException)
+ [ScheduleActivityTaskFailedException](#errorhandling.exceptions.ScheduleActivityTaskFailedException)
+ [SignalExternalWorkflowException](#errorhandling.exceptions.SignalExternalWorkflowException)
+ [StartChildWorkflowFailedException](#errorhandling.exceptions.StartChildWorkflowFailedException)
+ [StartTimerFailedException](#errorhandling.exceptions.StartTimerFailedException)
+ [TimerException](#errorhandling.exceptions.TimerException)
+ [WorkflowException](#errorhandling.exceptions.WorkflowException)

## ActivityFailureException
<a name="errorhandling.exceptions.ActivityFailureException"></a>

이 예외는 프레임워크 내부에서 활동 실패를 전달하는 데 사용됩니다. 미처리 예외로 인해 활동이 실패하면 이 예외는 `ActivityFailureException`에 포함되어 Amazon SWF에 보고됩니다. 활동 작업자 확장성 포인트를 사용하는 경우에만 이 예외를 처리해야 합니다. 사용자의 애플리케이션 코드에서는 이 예외를 처리할 필요가 없습니다.

## ActivityTaskException
<a name="errorhandling.exceptions.ActivityTaskException"></a>

이것은 활동 작업 실패 예외인 `ScheduleActivityTaskFailedException`, `ActivityTaskFailedException`, `ActivityTaskTimedoutException`의 기본 클래스입니다. 이 클래스에는 실패한 작업의 작업 ID와 활동 유형이 들어 있습니다. 사용자는 워크플로 구현에서 이 예외를 포착하여 일반적인 방식으로 활동 실패를 처리할 수 있습니다.

## ActivityTaskFailedException
<a name="errorhandling.exceptions.ActivityTaskFailedException"></a>

활동의 미처리 예외는`ActivityTaskFailedException`을 발생시키는 방식으로 워크플로 구현에 보고됩니다. 원본 예외는 이 예외의 원인 속성에서 가져올 수 있습니다. 또한 이 예외에서는 내역의 고유 활동 식별자와 같이 디버깅에 유용한 기타 정보를 제공합니다.

프레임워크에서는 활동 작업자에서 원본 예외를 직렬화하여 원격 예외를 제공할 수 있습니다.

## ActivityTaskTimedOutException
<a name="errorhandling.exceptions.ActivityTaskTimedOutException"></a>

이 예외는 Amazon SWF에서 활동이 제한 시간을 초과한 경우에 발생합니다. 이러한 예외는 활동 작업이 요구 시간 내에 작업자에게 할당될 수 없거나 요구 시간 내에 작업자가 완료할 수 없는 경우에 발생할 수 있습니다. 사용자는 이러한 제한 시간을 활동 메서드 호출 시 `@ActivityRegistrationOptions` 주석 또는 `ActivitySchedulingOptions` 파라미터를 사용하여 활동에 설정할 수 있습니다.

## ChildWorkflowException
<a name="errorhandling.exceptions.ChildWorkflowException"></a>

하위 워크플로 실행의 실행을 보고하는 데 사용되는 예외의 기본 클래스. 이 예외에는 하위 워크플로 실행의 ID뿐 아니라 이 워크플로의 유형도 들어 있습니다. 사용자는 이 예외를 포착하여 하위 워크플로 실행 실패를 일반적인 방식으로 처리할 수 있습니다.

## ChildWorkflowFailedException
<a name="errorhandling.exceptions.ChildWorkflowFailedException"></a>

하위 워크플로의 미처리 예외는`ChildWorkflowFailedException`을 발생시키는 방식으로 상위 워크플로 구현에 보고됩니다. 원본 예외는 이 예외의 `cause` 속성에서 가져올 수 있습니다. 또한 이 예외에서는 하위 실행의 고유 식별자와 같이 디버깅에 유용한 기타 정보를 제공합니다.

## ChildWorkflowTerminatedException
<a name="errorhandling.exceptions.ChildWorkflowTerminatedException"></a>

이 예외는 상위 워크플로 실행에서 발생하여 하위 워크플로 실행의 종료를 보고합니다. 하위 워크플로의 종료를 처리하고 싶다면(예: 정리 또는 보상 작업 수행) 사용자는 이 예외를 포착해야 합니다.

## ChildWorkflowTimedOutException
<a name="errorhandling.exceptions.ChildWorkflowTimedOutException"></a>

이 예외는 상위 워크플로 실행에서 발생하여 Amazon SWF에서 하위 워크플로 실행이 시간 초과되어 종료되었음을 보고합니다. 하위 워크플로의 강제 종료를 처리하고 싶다면(예: 정리 또는 보상 작업 수행) 사용자는 이 예외를 포착해야 합니다.

## DataConverterException
<a name="errorhandling.exceptions.DataConverterException"></a>

프레임워크에서는 `DataConverter` 구성 요소를 사용하여 네트워크를 통해 전송된 데이터를 마샬링 및 마샬링 취소합니다. 이 예외는 `DataConverter`에서 데이터 마샬링 또는 마샬링 취소에 실패한 경우에 발생합니다. 이 예외는 다양한 이유로 발생할 수 있는데, 데이터 마샬링 및 마샬링 취소에 사용 중인 `DataConverter` 구성 요소의 불일치를 예로 들 수 있습니다.

## DecisionException
<a name="errorhandling.exceptions.DecisionException"></a>

이것은 Amazon SWF에서 결정을 적용하는 데 실패했음을 나타내는 예외의 기본 클래스입니다. 사용자는 이 예외를 포착하여 그러한 예외를 일반적인 방식으로 처리할 수 있습니다.

## ScheduleActivityTaskFailedException
<a name="errorhandling.exceptions.ScheduleActivityTaskFailedException"></a>

이 예외는 Amazon SWF에서 활동 작업 예약에 실패한 경우에 발생합니다. 이는 활동이 더 이상 사용되지 않거나 계정의 Amazon SWF 한도에 도달한 경우 등 다양한 이유로 인해 발생할 수 있습니다. 예외의 `failureCause` 속성에서는 활동 예약에 실패한 정확한 원인을 지정합니다.

## SignalExternalWorkflowException
<a name="errorhandling.exceptions.SignalExternalWorkflowException"></a>

이 예외는 다른 워크플로 실행을 알리라는 해당 워크플로 실행의 요청을 Amazon SWF에서 처리하는 데 실패한 경우 발생합니다. 이는 대상 워크플로 실행을 찾을 수 없는 경우, 즉 지정한 워크플로 실행이 존재하지 않거나 닫힌 상태인 경우 발생합니다.

## StartChildWorkflowFailedException
<a name="errorhandling.exceptions.StartChildWorkflowFailedException"></a>

이 예외는 Amazon SWF에서 하위 워크플로 실행을 시작하는 데 실패한 경우에 발생합니다. 이는 지정된 하위 워크플로 유형이 더 이상 사용되지 않거나 계정의 Amazon SWF 한도에 도달한 경우 등 다양한 이유로 인해 발생할 수 있습니다. 예외의 `failureCause` 속성에서는 하위 워크플로 실행을 시작하는 데 실패한 정확한 원인을 지정합니다.

## StartTimerFailedException
<a name="errorhandling.exceptions.StartTimerFailedException"></a>

이 예외는 Amazon SWF에서 워크플로 실행이 요청한 타이머를 시작하는 데 실패한 경우에 발생합니다. 이 예외는 지정된 타이머 ID가 이미 사용 중이거나 사용자 계정에 설정된 Amazon SWF 한도에 도달한 경우에 발생할 수 있습니다. 예외의 `failureCause` 속성에서는 실패의 정확한 원인을 지정합니다.

## TimerException
<a name="errorhandling.exceptions.TimerException"></a>

이것은 타이머와 관련된 예외의 기본 클래스입니다.

## WorkflowException
<a name="errorhandling.exceptions.WorkflowException"></a>

이 예외는 프레임워크 내부에서 워크플로 실행의 실패를 보고하는 데 사용됩니다. 워크플로 작업자 확장성 포인트를 사용하는 경우에만 이 예외를 처리해야 합니다.

# AWS Flow Framework Java 패키지용
<a name="awsflow.packages"></a>

이 섹션에서는 Java AWS Flow Framework 용에 포함된 패키지의 개요를 제공합니다. 각 패키지에 대한 자세한 내용은 [AWS SDK for Java API 참조](https://docs.aws.amazon.com/sdk-for-java/latest/reference/)의 com.amazonaws.services.simpleworkflow.flow를 참조하십시오.

[com.amazonaws.services.simpleworkflow.flow](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/package-summary.html)  
Amazon SWF와 통합되는 구성 요소가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.annotations](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/annotations/package-summary.html)  
 AWS Flow Framework for Java 프로그래밍 모델에서 사용하는 주석을 포함합니다.

[com.amazonaws.services.simpleworkflow.flow.aspectj](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/aspectj/package-summary.html)  
[@비동기식](annotations.md#annotations-asynchronous) 및와 같은 기능에 필요한 AWS Flow Framework for Java 구성 요소를 포함합니다[@ExponentialRetry](annotations.md#annotations-exponentialretry).

[com.amazonaws.services.simpleworkflow.flow.common](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/common/package-summary.html)  
프레임워크 정의 상수와 같은 범용 유틸리티가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.core](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/core/package-summary.html)  
`Task` 및 `Promise`와 같은 핵심 기능이 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.generic](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/generic/package-summary.html)  
일반 클라이언트와 같은 핵심 구성 요소가 포함되어 있습니다. 이 구성 요소를 기반으로 다른 기능이 구축됩니다.

[com.amazonaws.services.simpleworkflow.flow.interceptors](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/interceptors/package-summary.html)  
`RetryDecorator`를 비롯한 프레임워크 제공 장식자의 구현이 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.junit](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/junit/package-summary.html)  
Junit 통합을 제공하는 구성 요소가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.pojo](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/pojo/package-summary.html)  
주석 기반 프로그래밍 모델에 대해 활동 및 워크플로 정의를 구현하는 클래스가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.spring](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/spring/package-summary.html)  
Spring 통합을 제공하는 구성 요소가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.test](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/test/package-summary.html)  
단위 테스팅 워크플로 구현에 대해 `TestWorkflowClock`와 같은 헬퍼 클래스가 포함되어 있습니다.

[com.amazonaws.services.simpleworkflow.flow.worker](https://docs.aws.amazon.com//AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/worker/package-summary.html)  
활동 및 워크플로 작업자의 구현이 포함되어 있습니다.