

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

# 워크플로 및 활동 유형 등록
<a name="features.registration"></a>

Amazon SWF에서는 활동 및 워크플로 유형을 사용하려면 이를 등록해야 합니다. 프레임워크에서는 사용자가 작업자에 추가하는 구현에 워크플로 및 활동을 자동으로 등록합니다. 프레임워크에서는 워크플로 및 활동을 구현하는 유형을 찾아 이를 Amazon SWF에 등록합니다. 기본적으로 프레임워크에서는 인터페이스 정의를 사용하여 워크플로 및 활동 유형의 등록 옵션을 유추합니다. 모든 워크플로 인터페이스에는 `@WorkflowRegistrationOptions` 주석 또는 `@SkipRegistration` 주석이 있어야 합니다. 워크플로 작업자는 `@WorkflowRegistrationOptions` 주석이 있는 모든 워크플로 유형을 등록합니다. 이와 마찬가지로 모든 활동 메서드는 `@ActivityRegistrationOptions` 주석 또는 `@SkipRegistration` 주석이 추가되거나 이 두 주석 중 하나가 `@Activities` 인터페이스에 표시되어야 합니다. 활동 작업자는 `@ActivityRegistrationOptions` 주석이 적용되는 모든 활동 유형을 등록합니다. 작업자 중 하나를 시작하면 자동으로 등록이 이루어집니다. `@SkipRegistration` 주석이 있는 워크플로 및 활동 유형은 등록되지 않습니다. `@ActivityRegistrationOptions`및 `@SkipRegistration` 주석에는 재정의 의미론이 있고 가장 구체적인 것이 활동 유형에 적용됩니다.

Amazon SWF에서는 한 번 등록된 유형은 재등록하거나 수정할 수 없다는 점에 유의하십시오. 프레임워크에서는 모든 유형을 등록하려고 할 것입니다. 그러나 이미 등록된 유형의 경우 재등록되지 않고 오류가 보고되지 않습니다.

등록된 설정을 수정해야 하는 경우 해당 유형의 새 버전을 등록해야 합니다. 새 실행을 시작하거나 생성된 클라이언트를 사용하는 활동을 호출할 때 등록된 설정을 재정의할 수도 있습니다.

등록하려면 유형 이름과 몇 가지 다른 등록 옵션이 필요합니다. 기본적인 구현에서는 이를 다음과 같이 결정합니다.

## 워크플로 유형 이름 및 버전
<a name="features.registration.workflow"></a>

프레임워크에서는 워크플로 인터페이스에서 워크플로 유형의 이름을 정합니다. 기본 워크플로 유형 이름의 형식은 \$1*prefix*\$1\$1*name*\$1입니다. \$1*prefix*\$1는 `@Workflow` 인터페이스의 이름으로 설정되고 뒤에 '.'가 추가되며 \$1*name*\$1은 `@Execute` 메서드의 이름으로 설정됩니다. 앞의 예에서 워크플로 유형의 기본 이름은 `MyWorkflow.startMyWF`입니다. `@Execute` 메서드의 이름 파라미터를 사용하여 기본 이름을 재정의할 수 있습니다. 예시에서 워크플로 유형의 기본 이름은 `startMyWF`입니다. 이 이름은 빈 문자열이어서는 안 됩니다. `@Execute`를 사용하여 이름을 재정의하는 경우 프레임워크에서는 이름에 접두사를 자동으로 붙이지 않는다는 점에 유의하십시오. 고유한 이름 지정 체계를 자유롭게 사용할 수 있습니다.

워크플로 버전은 `@Execute` 주석의 `version` 파라미터를 사용해 지정됩니다. `version`의 기본값은 없고 명시적으로 지정되어야 합니다. `version`은 자유 형식 문자열로서, 고유한 버전 관리 체계를 자유롭게 사용할 수 있습니다.

## 신호 이름
<a name="features.registration.signal"></a>

신호의 이름은 `@Signal` 주석의 이름 파라미터를 사용해 지정할 수 있습니다. 지정하지 않는 경우 기본값인 신호 메서드의 이름이 지정됩니다.

## 활동 유형 이름 및 버전
<a name="features.registration.activity"></a>

프레임워크에서는 활동 인터페이스에서 활동 유형의 이름을 정합니다. 기본 활동 유형 이름의 형식은 \$1*prefix*\$1\$1*name*\$1입니다. \$1*prefix*\$1는 `@Activities` 인터페이스의 이름으로 설정되고 뒤에 '.'가 추가되며 \$1*name*\$1은 메서드 이름으로 설정됩니다. 기본 \$1*prefix*\$1는 활동 인터페이스의 `@Activities` 주석에서 재정의할 수 있습니다. 또한 활동 메서드의 `@Activity` 주석을 사용하여 활동 유형 이름을 지정할 수도 있습니다. `@Activity`를 사용하여 이름을 재정의하는 경우 프레임워크에서는 이름에 접두사를 자동으로 붙이지 않는다는 점에 유의하십시오. 고유한 이름 지정 체계를 자유롭게 사용할 수 있습니다.

 활동 버전은 `@Activities` 주석의 버전 파라미터를 사용해 지정됩니다. 이 버전은 인터페이스에 정의된 모든 활동에 대해 기본값으로 사용되며 `@Activity` 주석을 사용해 활동별로 재정의할 수 있습니다.

## 기본 작업 목록
<a name="features.registration.defaulttasklist"></a>

기본 작업 목록은 `@WorkflowRegistrationOptions` 및 `@ActivityRegistrationOptions` 주석을 사용하고 `defaultTaskList` 파라미터를 설정하여 구성할 수 있습니다. 기본적으로 `USE_WORKER_TASK_LIST`로 설정됩니다. 이것은 활동 또는 워크플로 유형 등록에 사용되는 작업자 객체에 구성된 작업 목록을 사용하도록 프레임워크에게 지시하는 특수 값입니다. 또한 이 주석을 사용해 기본 작업 목록을 `NO_DEFAULT_TASK_LIST`로 설정하여 기본 작업 목록을 등록하지 않는 쪽을 선택할 수도 있습니다. 이 방법은 작업 목록이 런타임에 지정되도록 하고 싶은 경우에 사용할 수 있습니다. 기본 작업 목록이 등록되지 않은 경우 생성된 클라이언트의 해당되는 메서드 오버로드에 관한 `StartWorkflowOptions` 및 `ActivitySchedulingOptions` 파라미터를 사용하여 워크플로를 시작하거나 활동 메서드를 시작할 때 작업 목록을 지정해야 합니다.

## 기타 등록 옵션
<a name="features.registration.other"></a>

Amazon SWF API에서 허용하는 모든 워크플로 및 활동 유형 등록 옵션은 프레임워크를 통해 지정할 수 있습니다.

*워크플로* 등록 옵션의 전체 목록은 다음을 참조하십시오.
+ [@워크플로](annotations.md#annotations-workflow)
+ [@실행](annotations.md#annotations-execute)
+ [@WorkflowRegistrationOptions](annotations.md#annotations-workflowregistrationoptions)
+ [@신호](annotations.md#annotations-signal)

*활동* 등록 옵션의 전체 목록은 다음을 참조하십시오.
+ [@활동](annotations.md#annotations-activity)
+ [@활동](annotations.md#annotations-activities)
+ [@ActivityRegistrationOptions](annotations.md#annotations-activityregistration)

유형 등록을 완벽히 제어하고 싶다면 [작업자 확장성](running.md#running.workerextend) 단원을 참조하십시오.