

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

# ItemSelector(맵)
<a name="input-output-itemselector"></a>

**상태 관리 및 데이터 트랜스포밍**  
[변수를 사용하여 상태 간 데이터 전달](workflow-variables.md)과 [JSONata를 사용하여 데이터 트랜스포밍](transforming-data.md)에 대해 알아봅니다.

기본적으로 `Map` 상태의 유효 입력은 원시 상태 입력에 있는 개별 데이터 항목 집합입니다. 이 `ItemSelector` 필드를 사용하면 데이터 항목 값이 `Map` 상태로 전달되기 전에 이 값을 재정의할 수 있습니다.

값을 재정의하려면 키-값 페어 컬렉션이 포함된 유효한 JSON 입력을 지정합니다. 이 페어는 상태 머신 정의에 제공된 정적 값, [경로](amazon-states-language-paths.md)를 사용하여 상태 입력에서 선택한 값 또는 [컨텍스트 객체](input-output-contextobject.md)에서 액세스한 값일 수 있습니다.

경로나 컨텍스트 객체를 사용하여 키-값 페어를 지정하는 경우 키 이름은 `.$`로 끝나야 합니다.

**참고**  
`ItemSelector` 필드는 `Map` 상태 내에서 `Parameters` 필드를 대체합니다. `Map` 상태 정의의 `Parameters` 필드를 사용하여 사용자 지정 입력을 만드는 경우 `ItemSelector`로 바꾸는 것이 좋습니다.

*Inline Map 상태*와 *Distributed Map 상태* 모두에서 `ItemSelector` 필드를 지정할 수 있습니다.

예를 들어 `imageData` 노드 내에 항목 3개로 구성된 배열을 포함하는 다음 JSON 입력을 고려해보세요. *`Map` 상태 반복*마다 배열 항목이 입력으로 반복에 전달됩니다.

```
[
  {
    "resize": "true",
    "format": "jpg"
  },
  {
    "resize": "false",
    "format": "png"
  },
  {
    "resize": "true",
    "format": "jpg"
  }
]
```

다음 예제와 같이 `ItemSelector` 필드를 사용하여 사용자 지정 JSON 입력을 정의하여 원래 입력을 재정의할 수 있습니다. 그러면 Step Functions에서 이 사용자 지정 입력을 각 *`Map` 상태 반복*에 전달합니다. 사용자 지정 입력에는 `size` 정적 값과 `Map` 상태에 대한 컨텍스트 객체 데이터 값이 포함됩니다. `$$.Map.Item.Value` 컨텍스트 객체에는 각 개별 데이터 항목 값이 포함됩니다.

```
{
  "ItemSelector": {
    "size": 10,
    "value.$": "$$.Map.Item.Value"
  }
}
```

다음 예제에서는 *Inline Map 상태*를 한 번 반복하면 수신되는 입력을 보여줍니다.

```
{
  "size": 10,
  "value": {
    "resize": "true",
    "format": "jpg"
  }
}
```

**작은 정보**  
`ItemSelector` 필드를 사용하는 *Distributed Map 상태*의 전체 예제는 [Distributed Map을 사용하여 대규모 CSV 복사](tutorial-map-distributed.md) 섹션을 참조하세요.