

# DynamoDB 테이블을 위한 데이터 모델링
<a name="data-modeling"></a>

데이터 모델링에 대해 자세히 알아보기 전에 DynamoDB의 몇 가지 기본 사항을 이해하는 것이 중요합니다. DynamoDB는 유연한 스키마를 지원하는 키-값 NoSQL 데이터베이스입니다. 각 항목의 주요 속성을 제외한 데이터 속성 세트는 균일하거나 이산적일 수 있습니다. DynamoDB 키 스키마는 파티션 키로 항목을 고유하게 식별하는 단순 프라이머리 키 형식이거나 파티션 키와 정렬 키의 조합으로 항목을 고유하게 정의하는 복합 기본 키 형식입니다. 파티션 키는 해시되어 데이터의 물리적 위치를 확인하고 데이터를 검색합니다. 따라서 데이터를 균일하게 분배하려면 카디널리티가 높고 수평적으로 확장 가능한 속성을 파티션 키로 선택하는 것이 중요합니다. 정렬 키 속성은 키 스키마에서 선택 사항이며 정렬 키가 있으면 DynamoDB에서 일대다 관계를 모델링하고 항목 컬렉션을 생성할 수 있습니다. 정렬 키는 범위 키라고도 합니다. 정렬 키는 항목 컬렉션의 항목을 정렬하는 데 사용되며 유연한 범위 기반 작업을 가능하게 합니다.

DynamoDB 키 스키마에 대한 자세한 내용 및 모범 사례는 다음을 참조하세요.
+ [DynamoDB의 파티션 및 데이터 배포](HowItWorks.Partitions.md) 
+ [DynamoDB에서 효과적으로 파티션 키를 설계해 사용하는 모범 사례입니다.](bp-partition-key-design.md) 
+ [정렬 키를 사용하여 DynamoDB의 데이터를 정리하는 모범 사례](bp-sort-keys.md) 
+ [올바른 DynamoDB 파티션 키 선택](https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/) 

DynamoDB에서 추가 쿼리 패턴을 지원하려면 보조 인덱스가 필요한 경우가 많습니다. 보조 인덱스는 동일한 데이터가 기본 테이블과 다른 키 스키마를 통해 구성된 섀도우 테이블입니다. 로컬 보조 인덱스(LSI)는 기본 테이블과 동일한 파티션 키를 공유하며, 대체 정렬 키를 사용하여 기본 테이블의 용량을 공유할 수 있도록 합니다. 글로벌 보조 인덱스(GSI)는 기본 테이블과 다른 파티션 키와 정렬 키 속성을 가질 수 있습니다. 이는 GSI의 처리량 관리가 기본 테이블과 독립적임을 의미합니다.

보조 인덱스에 대한 자세한 내용 및 모범 사례는 다음을 참조하세요.
+ [DynamoDB에서 보조 인덱스를 사용하여 데이터 액세스 개선](SecondaryIndexes.md) 
+ [DynamoDB의 보조 인덱스 사용에 대한 모범 사례](bp-indexes.md) 

이제 데이터 모델링에 대해 좀더 자세히 살펴보겠습니다. DynamoDB 또는 NoSQL 데이터베이스에서 유연하고 고도로 최적화된 스키마를 설계하는 프로세스는 배우기 어려운 기술일 수 있습니다. 이 모듈의 목표는 사용 사례에서 시작해 프로덕션 단계까지 이어지는 스키마 설계를 위한 멘탈 흐름 차트를 개발하는 데 도움을 주는 것입니다. 먼저 모든 설계의 기본 선택, 즉 단일 테이블 설계와 다중 테이블 설계를 소개하는 것으로 시작하겠습니다. 그런 다음 애플리케이션의 다양한 조직적 결과 또는 성능 결과를 달성하는 데 사용할 수 있는 여러 설계 패턴(빌딩 블록)을 검토하겠습니다. 마지막으로 다양한 사용 사례와 산업을 위한 완전한 스키마 설계 패키지가 다양하게 포함되어 있습니다.

![\[데이터, 데이터 아래 있는 블록, 블록 아래 있는 기초 간의 개념적 관계를 보여 주는 이미지.\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/DataModeling/SchemaDesign.png)


**Topics**
+ [항목 컬렉션 - DynamoDB에서 일대다 관계를 모델링하는 방법](WorkingWithItemCollections.md)
+ [DynamoDB의 데이터 모델링 기초](data-modeling-foundations.md)
+ [DynamoDB의 데이터 모델링 빌딩 블록](data-modeling-blocks.md)
+ [DynamoDB의 데이터 모델링 스키마 설계 패키지](data-modeling-schemas.md)
+ [DynamoDB의 관계형 데이터 모델링 모범 사례](bp-relational-modeling.md)