

# DynamoDB에 대한 치트 시트
<a name="CheatSheet"></a>

이 치트 시트는 Amazon DynamoDB 및 다양한 AWS SDK를 사용하기 위한 빠른 참조를 제공합니다.

## 초기 설정
<a name="CheatSheet.InitialSetup"></a>

1. [에 가입합니다.AWS](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.SignUpForAWS)

1. 프로그래밍 방식으로 DynamoDB에 액세스하려면 [AWS 액세스 키를 얻습니다](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials).

1. [DynamoDB 보안 인증 정보를 구성합니다](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.ConfigureCredentials).

**다음 사항도 참조하세요.**
+ [DynamoDB 설정(웹 서비스)](SettingUp.DynamoWebService.html)
+ [DynamoDB 시작하기](GettingStartedDynamoDB.html)
+ [핵심 구성 요소의 기본 개요](HowItWorks.CoreComponents.html)

 

## SDK 또는 CLI
<a name="CheatSheet.Platform"></a>

선호하는 [SDK](sdk-general-information-section.html)를 선택하거나 [AWS CLI](/cli/latest/index.html)를 설정합니다.

**참고**  
Windows에서 AWS CLI를 사용하는 경우 따옴표 안에 없는 백슬래시(\$1)는 캐리지 리턴으로 처리됩니다. 또한 다른 따옴표 안에 있는 따옴표와 중괄호는 모두 이스케이프 처리해야 합니다. 예를 보려면 다음 섹션의 "테이블 생성"에서 **Windows** 탭을 참조하세요.

**다음 사항도 참조하세요.**
+ [DynamoDB와 함께 AWS CLI 사용](Tools.CLI.html)
+ [DynamoDB 시작하기 - 2단계](getting-started-step-2.html)

## 기본 작업
<a name="CheatSheet.BasicActions"></a>

이 섹션에서는 기본 DynamoDB 태스크를 위한 코드를 제공합니다. 이러한 태스크에 대한 자세한 내용은 [DynamoDB 및 AWS SDK 시작하기](GettingStarted.html)를 참조하세요.

### 테이블 생성
<a name="CheatSheet.BasicActions.CreateTable"></a>

------
#### [ Default ]

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode PAY_PER_REQUEST \
    --table-class STANDARD
```

------
#### [ Windows ]

```
aws dynamodb create-table ^
    --table-name Music ^
    --attribute-definitions ^
        AttributeName=Artist,AttributeType=S ^
        AttributeName=SongTitle,AttributeType=S ^
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE ^
    --billing-mode PAY_PER_REQUEST ^
    --table-class STANDARD
```

------

### 테이블에 항목 쓰기
<a name="CheatSheet.BasicActions.WriteItem"></a>

```
aws dynamodb put-item \ --table-name Music \ --item file://item.json
```

### 테이블에서 항목 읽기
<a name="CheatSheet.BasicActions.ReadItem"></a>

```
aws dynamodb get-item \ --table-name Music \ --item file://item.json
```

### 테이블에서 항목 삭제
<a name="CheatSheet.BasicActions.DeleteItem"></a>

```
aws dynamodb delete-item --table-name Music --key file://key.json
```

### 테이블 쿼리
<a name="CheatSheet.BasicActions.QueryTable"></a>

```
aws dynamodb query --table-name Music 
--key-condition-expression "ArtistName=:Artist and SongName=:Songtitle"
```

### 테이블 삭제
<a name="CheatSheet.BasicActions.DeleteTable"></a>

```
aws dynamodb delete-table --table-name Music
```

### 테이블 이름 나열
<a name="CheatSheet.BasicActions.ListTableNames"></a>

```
aws dynamodb list-tables
```

## 이름 지정 규칙
<a name="CheatSheet.NamingRules"></a>
+ 모든 이름은 UTF-8로 인코딩되어야 하며, 대소문자를 구분합니다.
+ 테이블 이름 및 인덱스 이름은 3\$1255자로 이루어져야 하며, 다음 문자만 포함할 수 있습니다.
  + `a-z`
  + `A-Z`
  + `0-9`
  + `_`(밑줄)
  + `-`(하이픈)
  + `.`(점)
+ 속성 이름은 1자 이상이고 크기가 64KB 미만이어야 합니다.

자세한 내용은 [이름 지정 규칙](HowItWorks.NamingRulesDataTypes.html)을 참조하세요.

## 서비스 할당량 기본 사항
<a name="CheatSheet.ServiceBasics"></a>

**읽기 및 쓰기 단위**
+ **읽기 용량 단위(RCU)** – 초당 강력히 일관된 읽기 1회 또는 초당 최종 읽기 일관성 2회(크기가 최대 4KB인 항목).
+ **쓰기 용량 단위(WCU)** – 초당 쓰기 1회(크기가 최대 1KB인 항목)

**테이블 제한**
+ **테이블 크기** – 테이블 크기에는 실질적인 제한이 없습니다. 테이블의 항목 수 또는 바이트 수에는 제약이 없습니다.
+ **테이블 개수** – 임의의 AWS 계정에 대해 AWS 리전당 테이블 2,500개의 초기 할당량이 있습니다.
+ **쿼리 및 스캔의 페이지 크기 제한** – 페이지당, 쿼리 또는 스캔당 1MB로 제한됩니다. 테이블에서 쿼리 파라미터 또는 스캔 작업을 수행한 결과 데이터가 1MB를 초과하는 경우 DynamoDB는 초기 일치 항목을 반환합니다. 또한 새 요청에서 다음 페이지를 읽는 데 사용할 수 있는 `LastEvaluatedKey` 속성도 반환합니다.

**인덱스**
+ **로컬 보조 인덱스(LSI)** - 최대 5개의 로컬 보조 인덱스를 정의할 수 있습니다. LSI는 주로 인덱스가 기본 테이블과 강한 일관성을 가져야 할 때 유용합니다.
+ **글로벌 보조 인덱스(GSI)** – 기본적으로 테이블당 20개의 글로벌 보조 인덱스 할당량이 있습니다.
+ **테이블당 프로젝션된 보조 인덱스 속성** – 테이블의 모든 로컬 및 글로벌 보조 인덱스에 속성을 총 100개까지 프로젝션할 수 있습니다. 사용자 지정 프로젝션 속성에만 이 제한이 적용됩니다.

**파티션 키**
+ 파티션 키 값의 최소 길이는 1바이트입니다. 최대 길이는 2,048바이트입니다.
+ 고유 파티션 키 값의 수는 테이블 또는 보조 인덱스에 대해 실제로 제한이 없습니다.
+ 정렬 키 값의 최소 길이는 1바이트입니다. 최대 길이는 1,024바이트입니다.
+ 일반적으로 파티션 키 값당 고유 정렬 키 값의 수는 실제로 제한이 없습니다. 보조 인덱스를 포함하는 테이블은 예외입니다.

보조 인덱스, 파티션 키 설계 및 정렬 키 설계에 대한 자세한 내용은 [모범 사례](best-practices.html)를 참조하세요.

**일반적으로 사용되는 데이터 유형의 제한**
+ **문자열** – 문자열 길이는 최대 항목 크기 400KB의 제한을 받습니다. 문자열은 UTF-8 이진수 인코딩을 사용하는 유니코드입니다.
+ **숫자** – 숫자는 소수점 아래 최대 38자리의 양수, 음수 또는 0이 될 수 있습니다.
+ **이진수** – 이진수 길이는 최대 항목 크기 400KB의 제한을 받습니다. 이진 속성을 처리하는 애플리케이션에서는 데이터를 DynamoDB로 보내기 전에 base64로 인코딩해야 합니다.

지원되는 데이터 형식의 목록은 [데이터 형식](HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)을 참조하세요. 자세한 내용은 [Service Quotas](ServiceQuotas.html#limits-items)를 참조하세요.

### 항목, 속성 및 표현식 파라미터
<a name="CheatSheet.ServiceBasics.Misc"></a>

DynamoDB에서 최대 항목 크기가 400KB를 초과할 수 없습니다. 여기에는 속성 이름 이진 길이(UTF-8 길이)와 속성 값 이진 길이(UTF-8 길이)가 모두 포함됩니다. 속성 이름은 크기 제한에 포함됩니다.

목록, 맵 또는 집합 내 값의 수에는 제한이 없습니다. 단, 값을 포함하는 항목이 400KB 항목 크기 제한을 초과하지 않아야 합니다.

표현식 파라미터의 경우 표현식 문자열의 최대 길이는 4KB입니다.

항목 크기, 속성 및 표현식 파라미터에 대한 자세한 내용은 [Service Quotas](ServiceQuotas.html#limits-items)를 참조하세요.

## 추가 정보
<a name="CheatSheet.FurtherInfo"></a>
+ [보안](security.html)
+ [모니터링 및 로깅](monitoring.html)
+ [스트림 작업](streamsmain.html)
+ [백업](Backup-and-Restore.html) 및 [특정 시점으로 복구](Point-in-time-recovery.html)
+ [다른 AWS 서비스와 통합](OtherServices.html) 
+ [API 참조](/amazondynamodb/latest/APIReference/Welcome.html)
+ [아키텍처 센터: 데이터베이스 모범 사례](https://aws.amazon.com/architecture/databases/)
+ [자습서 비디오](https://youtu.be/Mw8wCj0gkRc)
+ [DynamoDB 포럼](https://repost.aws/search/questions?globalSearch=dynamodb)