DynamoDB SDK 는 대부분의 프로그래밍 언어를 제공하며, 이를 사용하여 프로젝트에 필요한 작업을 할 수 있다.
SDK 가 다음 기능을 제공하여 개발자의 코드 양을 엄청나게 줄여준다.
- HTTP(S) 요청 서식 설정 및 요청 파라미터 직렬화.
- 각 요청의 암호화 서명 생성.
- 요청을 DynamoDB 엔드포인트에 전달하고 DynamoDB로부터 응답을 수신.
- 이러한 응답에서 결과 추출.
- 오류 발생 시 기본적 재시도 로직 구현.
AWS SDK는 DynamoDB 작업을 위한 3가지 프로그래밍 인터페이스를 제공한다.
사용 가능한 인터페이스는 사용하는 AWS SDK와 프로그래밍 언어에 따라 달라질 수 있다.
1. Low-Level Interfaces
SDK 는 Low-Level DynamoDB API 요청과 매우 비슷한 메서드를 사용하여, DynamoDB 용 Low-Level 인터페이스를 제공한다.
경우에 따라 문자열에 해당되는 S 또는 숫자에 해당되는 N 같은 Data Type Descriptors 를 사용하여 속성의 데이터 형식을 식별해야 한다.
DynamoDB Low-Level 인터페이스를 구현한 com.amazonaws.services.dynamodbv2.AmazonDynamoDB 클래스를 사용할 수 있다.
2. Document Interfaces
Java, .NET, Node.js, JavaScript 용 AWS SDK 는 Table 과 Index 에서 데이터 CRUD 를 수행할 수 있는 document 인터페이스를 제공한다.
document 인터페이스를 사용하면 Data Type Descriptors 를 사용할 필요가 없다.
이 document 인터페이스를 구현한 com.amazonaws.services.dynamodbv2.document.DynamoDB 클래스를 사용할 수 있다.
DynamoDB 는 Low-Level 클라이언트(AmazonDynamoDB) 의 래퍼 역할을 한다. (Low-Level 인터페이스를 사용하는 것보다 코드가 간결해진다.)
- Music Table 에서 특정 노래를 가져와 노래의 년도를 출력하는 예제)
package com.amazonaws.codesamples.gsg; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.document.DynamoDB; import com.amazonaws.services.dynamodbv2.document.GetItemOutcome; import com.amazonaws.services.dynamodbv2.document.Table; public class MusicDocumentDemo { public static void main(String[] args) { AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB docClient = new DynamoDB(client); Table table = docClient.getTable("Music"); GetItemOutcome outcome = table.getItemOutcome( "Artist", "No One You Know", "SongTitle", "Call Me Today"); int year = outcome.getItem().getInt("Year"); System.out.println("The song was released in " + year); } } | cs |
3. Object Persistence Interfaces
DynamoDB Table 과 Index 의 Item 을 나타내는 객체를 생성해 이 객체들과만 상호 작용하여, 객체 중심 코드를 만들 수 있다.
이를 활용하면, DynamoDB 테이블로 클라이언트 측 클래스를 매핑할 수가 있다.
Object Persistence 인터페이스를 구현한 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper 클래스를 사용할 수 있다.
DynamoDBMapper 도 Low-Level 클라이언트(AmazonDynamoDB) 의 래퍼 역할을 한다.
이 인터페이스는 Java, .NET 용 AWS SDK 만 제공한다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.