

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

# 고급 매핑 기능 사용
<a name="ddb-en-client-adv-features"></a>

DynamoDB 향상된 클라이언트 API의 고급 테이블 스키마 기능에 대해 알아보세요.

## 테이블 스키마 유형 이해
<a name="ddb-en-client-adv-features-schm-overview"></a>

`[TableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableSchema.html)`는 DynamoDB 향상된 클라이언트 API의 매핑 기능에 대한 인터페이스입니다. [AttributeValues](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/model/AttributeValue.html) 맵에 데이터 객체를 매핑하거나 이 맵에서 데이터 객체를 매핑할 수 있습니다. `TableSchema` 객체는 매핑하려는 테이블의 구조를 알아야 합니다. 이 구조 정보는 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableMetadata.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/TableMetadata.html) 객체에 저장됩니다.

향상된 클라이언트 API에는 `TableSchema`의 여러 구현이 있습니다.

### 주석이 달린 클래스에서 생성된 테이블 스키마
<a name="ddb-en-client-adv-features-schema-mapped"></a>

주석이 달린 클래스로 `TableSchema`를 빌드하는 작업은 비용이 다소 많이 들기 때문에 애플리케이션을 시작할 때 한 번 수행하는 것이 좋습니다.

 [BeanTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/BeanTableSchema.html)   
이 구현은 Bean 클래스의 속성 및 주석을 기반으로 빌드됩니다. 이 접근 방식의 예제는 [시작하기 단원](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-anno-bean)에 나와 있습니다.  
`BeanTableSchema`가 예상대로 작동하지 않는 경우 `software.amazon.awssdk.enhanced.dynamodb.beans`에 대한 디버그 로깅을 활성화하세요.

[ImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/ImmutableTableSchema.html)  
이 구현은 변경할 수 없는 데이터 클래스를 기반으로 구축되었습니다. 이 접근은 [변경할 수 없는 데이터 클래스로 작업](ddb-en-client-use-immut.md) 단원에서 설명합니다.

### 빌더로 생성된 테이블 스키마
<a name="ddb-en-client-adv-features-schema-static"></a>

다음 `TableSchema`은 빌더를 사용하여 코드로 빌드됩니다. 이 접근 방식은 주석이 달린 데이터 클래스를 사용하는 접근 방식보다 비용이 저렴합니다. 빌더 접근 방식은 주석을 사용하지 않으므로 JavaBean 이름 지정 표준이 필요하지 않습니다.

[StaticTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticTableSchema.html)  
이 구현은 변경 가능한 데이터 클래스용으로 구축되었습니다. 이 가이드의 시작하기 단원에서는 [빌더를 사용하여 `StaticTableSchema`를 생성하는](ddb-en-client-gs-tableschema.md#ddb-en-client-gs-tableschema-builder) 방법을 보여 주었습니다.

[StaticImmutableTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html)  
`StaticTableSchema`를 빌드하는 방법과 마찬가지로 변경할 수 없는 데이터 클래스와 함께 사용할 [빌더](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/mapper/StaticImmutableTableSchema.html)를 사용하여 이러한 유형의 `TableSchema` 구현을 생성합니다.

### 고정 스키마가 없는 데이터에 대한 테이블 스키마
<a name="ddb-en-client-adv-features-schema-document"></a>

[DocumentTableSchema](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/document/DocumentTableSchema.html)  
`TableSchema`의 다른 구현과 달리 `DocumentTableSchema` 인스턴스의 속성은 정의하지 않습니다. 일반적으로 기본 키와 특성 변환기 공급자만 지정합니다. `EnhancedDocument` 인스턴스는 개별 요소 또는 JSON 문자열에서 빌드한 속성을 제공합니다.