이 단원에서는 DynamoDB에서 데이터를 삽입 및 검색하는 몇 가지 간단한 예제를 설명합니다. CreateTable API를 사용하여 DynamoDB 테이블을 생성한 후, BatchWriteItem API 호출을 사용하여 몇 가지 항목을 삽입합니다. 마지막으로 GetItem API 호출을 사용하여 개별 항목을 검색합니다. 이 예제를 진행하기 전에, 온라인 서점 애플리케이션 예제에서 사용할 데이터 모델을 살펴봅니다.
후속 모듈에서는, Query API 호출을 사용하여 한 번에 여러 항목을 검색하는 방법과 보조 인덱스를 사용하여 추가 쿼리 패턴을 활성화하는 방법에 대해 알아봅니다. 또한 테이블에서 기존 항목을 업데이트하는 방법도 알아봅니다.
모듈 완료 시간: 15분
이 모듈에서는 다음과 같은 DynamoDB 개념이 중요합니다.
- 테이블: DynamoDB 데이터 레코드 모음입니다.
- 항목: DynamoDB 테이블의 단일 데이터 레코드입니다. 관계형 데이터베이스에서 행과 비슷합니다.
- 속성: 항목의 단일 데이터 요소입니다. 관계형 데이터베이스에서 열과 비슷합니다. 그러나 관계형 데이터베이스의 열과 달리, 이 모듈에서 나중에 설명하는 기본 키 외에 테이블 작성 시 속성을 지정하지 않아도 됩니다. 속성은 문자열, 정수 또는 부울과 같은 단순 유형이거나 목록 또는 매핑과 같은 복합 유형일 수도 있습니다.
- 기본 키: 기본 키는 DynamoDB 테이블의 단일 항목에 대한 고유 식별자입니다. 기본 키 이름 및 유형은 테이블 작성 시 지정해야 하며, 테이블에 쓰는 각 항목과 함께 지정된 유형의 기본 키를 포함해야 합니다. 단순 기본 키는 단일 속성으로 구성되며, 복합 기본 키는 두 개의 속성(파티션 키 및 정렬 키)으로 구성됩니다. 예를 들어, 식별자로 “UserID”를 사용하여 단순 기본 키를 생성하거나 항목 식별자로 “UserID” 및 “Creation_Date”를 결합하여 복합 기본 키를 생성할 수 있습니다.
애플리케이션을 구축할 때 항상 애플리케이션 논리에 필요한 데이터 모델을 설계하는 시간을 가져야 합니다. 데이터 모델을 설계할 때는 데이터 읽기 및 쓰기 측면 모두에 대해 애플리케이션에 필요한 데이터 액세스 요구 사항을 고려해야 합니다.
DynamoDB는 비관계형 데이터베이스입니다. 비관계형 데이터베이스에서는 테이블을 생성할 때 전체 스키마를 미리 지정하지 않아도 됩니다. 테이블에 대한 기본 키만 선언하면 됩니다. 이 기본 키로 테이블의 각 레코드를 고유하게 식별합니다. 그러면 애플리케이션 요구 사항이 변경될 때 스키마를 쉽게 수정할 수 있으므로, 데이터 모델을 설계하는 사전 비용을 줄일 수 있습니다.
이 자습서 “소개”의 “애플리케이션 배경 정보” 단원에서 설명한 대로, 애플리케이션은 서적의 제목과 작가로 개별 서적을 검색해야 합니다. 제목과 작가 조합은 서적의 고유한 식별자이므로, 이 속성을 테이블의 기본 키로 사용할 수 있습니다. 또한 애플리케이션은 역사 또는 전기와 같은 서적의 카테고리에 대한 정보와 함께 하드커버, 페이퍼백 또는 오디오북과 같은 사용 가능한 서적의 형식도 저장해야 합니다. 그러면 이러한 정보는 인벤토리 시스템의 항목 번호에 매핑됩니다.
이 요구 사항을 염두에 두고, 테이블에 대해 다음 스키마를 사용할 수 있습니다.
- 제목(문자열): 서적 제목
- 작가(문자열): 서적 작가
- 카테고리(문자열): 역사, 전기 및 공상 과학과 같은 서적의 카테고리
- 형식(맵): 하드커버, 페이퍼백 및 오디오북과 같이 판매할 수 있는 다양한 형식과 인벤토리 시스템에서 해당 항목 번호
다음 단계에서는 테이블의 복합 기본 키(Author 및 Title)를 지정하여 테이블을 생성합니다. 그런 다음, 일부 항목을 테이블로 로드하고 테이블에서 개별 항목을 읽습니다.