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
손가락귀신
정신 못차리면, 벌 받는다.

,