

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

# 페이지 매김
<a name="pagination"></a>

페이로드가 너무 커서 단일 응답으로 반환할 수 없는 경우 많은 AWS 작업이 페이지 매김된 결과를 반환합니다. 에는 결과를 자동으로 페이지 매김하는 서비스 클라이언트 인터페이스에 대한 [확장](https://kotlinlang.org/docs/extensions.html)이 AWS SDK for Kotlin 포함되어 있습니다. 결과를 처리할 코드를 작성하기만 하면 됩니다.

페이지 매김은 [Flow<T>](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/)로 노출되므로 비동기 컬렉션(예: `map`, `filter`및 )에 대해 Kotlin의 관용 변환을 활용할 수 있습니다`take`. 예외는 투명하므로 오류 처리가 정기적인 API 호출처럼 느껴지며 취소는 코루틴의 일반적인 협력 취소를 따릅니다. 자세한 내용은 공식 가이드의 [흐름](https://kotlinlang.org/docs/flow.html) 및 [흐름 예외](https://kotlinlang.org/docs/flow.html#flow-exceptions)를 참조하세요.

**참고**  
다음 예제에서는 Amazon S3를 사용합니다. 그러나 하나 이상 페이지 매김된 API가 있는 모든 서비스에서 개념은 동일합니다. 모든 페이지 매김 확장은 `aws.sdk.kotlin.services.<service>.paginators` 패키지에 정의됩니다(예: `aws.sdk.kotlin.services.dynamodb.paginators`).

다음 코드 예제에서는 [listObjectsV2Paginated](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3.paginators/list-objects-v2-paginated.html) 함수 호출에서 페이지가 지정된 응답을 처리하는 방법을 보여줍니다.

**가져오기**

```
import aws.sdk.kotlin.services.s3.S3Client
import aws.sdk.kotlin.services.s3.paginators.listObjectsV2Paginated
import kotlinx.coroutines.flow.*
```

**코드**

```
val s3 = S3Client.fromEnvironment()
val req = ListObjectsV2Request {
    bucket = "amzn-s3-demo-bucket"
    maxKeys = 1
}

s3.listObjectsV2Paginated(req)  // Flow<ListObjectsV2Response>
    .transform { it.contents?.forEach { obj -> emit(obj) } }
    .collect { obj ->
        println("key: ${obj.key}; size: ${obj.size}")
    }
```