

이제 AWS Mobile SDK for Unity가에 포함됩니다 AWS SDK for .NET. 이 가이드에서는 Mobile SDK for Unity의 아카이브 버전을 참조합니다. 자세한 내용은 [ AWS Mobile SDK for Unity란 무엇입니까?](what-is-unity-plugin.md) 섹션을 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Mobile SDK for Unity 시작하기
<a name="getting-started-unity"></a>

이 페이지에서는 AWS Mobile SDK for Unity 내 각 AWS 서비스의 개요를 제공하고 Unity 샘플을 설정하는 방법을 설명합니다. 아래 서비스를 사용하려면 [AWS Mobile SDK for Unity 설정](setup-unity.md)에 대한 지침을 모두 완료해야 합니다.

## Amazon Cognito 자격 증명
<a name="unity-getting-started-cognito-identity"></a>

모든 AWS 호출에는 AWS 자격 증명이 필요합니다. 앱에 보안 인증을 하드코딩하기보다는 [Amazon Cognito 자격 증명](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)을 사용하여 애플리케이션에 AWS 자격 증명을 제공할 것을 권장합니다. Amazon Cognito를 통해 AWS 보안 인증을 얻으려면 [AWS Mobile SDK for Unity 설정](setup-unity.md)의 지침을 따릅니다.

또한 Cognito는 Amazon, Facebook, Twitter, Google 같은 퍼블릭 로그인 공급자 그리고 [OpenID Connect](https://aws.amazon.com/blogs/aws/openid-connect-support/)를 지원하는 공급자를 사용한 사용자 인증도 지원합니다. 또한 Cognito는 인증되지 않은 사용자도 지원합니다. Cognito는 [자격 증명 및 액세스 관리](https://aws.amazon.com/iam)(IAM) 역할을 통해 지정하는 제한적 액세스 권한을 갖는 임시 보안 인증을 제공합니다. Cognito는 IAM 역할과 연결된 새 자격 증명 풀을 생성하여 구성됩니다. 이 IAM 역할은 앱이 액세스할 수 있는 리소스/서비스를 지정합니다.

Cognito 자격 증명을 시작하려면 [Amazon Cognito 개발자 안내서](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html)를 참조하십시오.

## Amazon Cognito Sync
<a name="amazon-cognito-sync"></a>

 [Cognito Sync](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sync.html)를 사용하면 사용자 기본 설정 또는 게임 상태와 같은 최종 사용자 데이터를 AWS 클라우드에 손쉽게 저장할 수 있습니다. 그러면 사용자가 보유한 디바이스와 상관없이 해당 데이터를 사용할 수 있습니다. 또한 Cognito는 이 데이터를 로컬에도 저장하여 인터넷 연결이 불가능할 경우에도 앱이 작동할 수 있습니다. 인터넷 연결이 가능해지면 앱이 로컬 데이터를 클라우드와 동기화합니다.

Cognito Sync를 시작하려면 [Amazon Cognito 개발자 안내서](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html)를 참조하십시오.

### CognitoSyncManager 샘플 사용
<a name="using-the-cognitosyncmanager-sample"></a>

**프로젝트** 창에서 **자산**/**AWSSDK**/**예제**/**CognitoSync**로 이동한 다음 창의 오른쪽에서 **CognitoSync** 장면을 선택하여 장면을 엽니다.

샘플을 실행하려면 편집기 화면의 상단에서 플레이 버튼을 클릭합니다. 앱이 실행되면 몇 가지 플레이어 정보를 입력할 수 있는 텍스트 상자 및 버튼 몇 개가 표시됩니다. 그 아래에 플레이어 정보를 로컬에 저장하고, 로컬 플레이어 정보를 Cognito 클라우드와 동기화하고, Cognito 클라우드로부터 플레이어 정보를 새로 고치고, 로컬 플레이어 정보를 삭제하기 위한 일련의 버튼이 있습니다. 각 버튼을 눌러 작업을 수행합니다. 이 샘플은 게임 화면 위에 피드백을 표시합니다.

CognitoSyncManager 샘플을 구성하려면 Cognito 자격 증명 풀 ID를 지정해야 합니다. 이 값을 지정하려면 Unity 에디터의 **계층** 창에서 **SyncManager**를 선택하고 **인스펙터 창**의 **IDENTITY\$1POOL\$1ID** 텍스트 상자에 값을 입력합니다.

**참고**  
CognitoSyncManager 샘플에는 Facebook 자격 증명 공급자를 사용하고 "USE\$1FACEBOOK\$1LOGIN" 매크로를 검색하는 방법을 예시하는 코드가 포함되어 있습니다. 그러려면 Facebook SDK for Unity를 사용해야 합니다. 자세한 내용은 [Facebook SDK for Unity](https://developers.facebook.com/docs/unity/)를 참조하십시오.

## Dynamo DB
<a name="dynamo-db"></a>

 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)는 속도가 빠르고 확장성이 뛰어나며 비용 효과적인 비 관계형 데이터베이스 서비스입니다. DynamoDB는 기존 데이터 스토리지의 확장성 제한을 없애면서도 낮은 지연 시간과 예측 가능한 성능을 유지합니다.

AWS SDK for Unity는 DynamoDB에서의 작업을 위한 하위 수준 및 상위 수준 라이브러리를 모두 제공합니다. 상위 수준 라이브러리에는 DynamoDB Object 매퍼가 포함됩니다. 이 매퍼를 사용하여 클라이언트 쪽 클래스를 DynamoDB 테이블에 매핑하고, 다양한 생성, 읽기, 업데이트 및 삭제(CRUD) 작업을 수행하고, 쿼리를 실행할 수 있습니다. DynamoDB Object 매퍼를 사용하여 클라우드에 객체를 저장하는 간단하고 읽을 수 있는 코드를 작성할 수 있습니다.

DynamoDB에 대한 자세한 내용은 [DynamoDB 개발자 안내서](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)를 참조하십시오.

Unity 애플리케이션에서 DynamoDB를 사용하는 방법에 대한 자세한 내용은 [Amazon DynamoDB](dynamodb.md)를 참조하십시오.

### DynamoDB 샘플 사용
<a name="using-the-dynamodb-sample"></a>

**프로젝트** 창에서 **자산**/**AWSSDK**/**예제**/**DynamoDB**로 이동합니다. 이 샘플은 다음과 같은 장면으로 구성되어 있습니다.
+ DynamoDBExample - 앱의 초기 장면
+ LowLevelDynamoDbExample - 하위 수준 DynamoDBD API를 사용하는 예제
+ TableQueryAndScanExample - 쿼리를 실행하는 방법을 보여주는 예제
+ HighLevelExample - 상위 수준 DynamoDB API를 사용하는 예제

[Build Settings] 대화 상자([File]/[Build Settings]를 선택하면 열림)를 사용하여 이러한 장면을 빌드에 추가합니다(위에 표시된 순서대로). 이 샘플은 ProductCatalog, Forum, Thread, Reply 등 4개 테이블을 생성합니다.

샘플을 실행하려면 편집기 화면의 상단에서 플레이 버튼을 클릭합니다. 앱이 실행되면 여러 개의 버튼이 표시됩니다.
+ Low Level Table Operations - 테이블을 생성, 나열, 업데이트, 설명 및 삭제하는 방법을 예시합니다.
+ Mid Level Query & Scan Operations - 쿼리를 실행하는 방법을 예시합니다.
+ High Level Object Mapper - 객체를 생성, 업데이트 및 삭제하는 방법을 예시합니다.

## Mobile Analytics
<a name="mobile-analytics"></a>

[Amazon Mobile Analytics](https://aws.amazon.com/mobileanalytics/)를 사용하면 고객 행동을 추적하고, 지표를 집계하고, 데이터 시각화를 생성하고, 유의미한 패턴을 식별할 수 있습니다. AWS SDK for Unity는 Amazon Mobile Analytics 서비스와 통합될 수 있습니다. Mobile Analytics에 대한 자세한 내용은 [Mobile Analytics 사용 설명서](https://docs.aws.amazon.com/mobileanalytics/latest/ug/welcome.html)를 참조하십시오. Unity 애플리케이션에서 Mobile Analytics를 사용하는 방법에 대한 자세한 내용은 [Amazon Mobile Analytics](analytics.md)를 참조하십시오.

### Mobile Analytics 구성
<a name="configuring-mobile-analytics"></a>

Mobile Analytics는 몇 가지 설정을 정의하며, 각 설정은 awsconfig.xml 파일에서 구성할 수 있습니다.

```
<mobileAnalytics sessionTimeout = "5"
                 maxDBSize = "5242880"
                 dbWarningThreshold = "0.9"
                 maxRequestSize = "102400"
                 allowUseDataNetwork = "false"/>
```
+ sessionTimeout - 애플리케이션이 백그라운드로 전환된 후 세션이 종료될 때까지의 시간 간격입니다.
+ maxDBSize - SQLIte 데이터베이스의 크기입니다. 데이터베이스가 최대 크기에 도달하면 추가 이벤트가 삭제됩니다.
+ dbWarningThreshold - 데이터베이스 크기 제한입니다. 이 제한에 도달할 경우 경고 로그가 생성됩니다.
+ maxRequestSize - HTTP 요청에서 Mobile Analytics 서비스로 전송되어야 할 요청의 최대 크기(바이트)입니다.
+ allowUseDataNetwork - 세션 이벤트가 데이터 네트워크에서 전송되는지 여부를 지정하는 부울입니다.

### Mobile Analytics 샘플 사용
<a name="using-the-mobile-analytics-sample"></a>

**프로젝트** 창에서 **자산**/**AWSSDK**/**예제**/**Mobile Analytics**로 이동한 다음 창의 오른쪽에서 **Amazon Mobile Analytics 샘플** 장면을 선택하여 장면을 엽니다. 이 샘플을 사용하려면 [Amazon Mobile Analytics 콘솔](https://docs.aws.amazon.com/mobileanalytics/latest/ug/migrate-console.html)을 사용하여 앱을 추가해야 합니다. Mobile Analytics 콘솔 사용에 대한 자세한 내용은 [Amazon Mobile Analytics 사용 설명서](https://docs.aws.amazon.com/mobileanalytics/latest/ug/set-up.html)를 참조하십시오.

샘플을 실행하기 전에 다음 단계를 수행하여 샘플을 구성합니다.

1. AmazonMobileAnalyticsSample 게임 프로젝트를 선택합니다.

1. "App ID" 필드에 [Amazon Mobile Analytics 콘솔](https://docs.aws.amazon.com/mobileanalytics/latest/ug/migrate-console.html)에서 생성된 App ID를 지정합니다.

1. "Cognito 자격 증명 풀 ID" 필드에 [Amazon Cognito 콘솔](https://console.aws.amazon.com/cognito/home)을 사용하여 생성된 Cognito 자격 증명 풀 ID를 지정합니다.

1. 인증된 역할 및 인증되지 않은 역할이 Mobile Analytics 서비스에 액세스할 수 있는 권한이 있는지 확인합니다. IAM 역할에 정책을 적용하는 방법에 대한 자세한 내용은 [역할 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing.html#roles-managingrole-editing-console)를 참조하십시오.

샘플 애플리케이션을 실행할 때 이벤트가 백엔드 서비스로 즉시 전송되지 않을 수 있다는 데 유의하십시오. 게임 성능에 악영향을 주지 않도록 백그라운드 스레드가 로컬에서 이벤트를 버퍼링하다가 주기적으로(기본값 60초) Amazon Mobile Analytics 백엔드에 일괄 전송합니다. Amazon Mobile Analytics가 데이터에서 수행하는 처리가 복잡하기 때문에 제출된 이벤트 및 해당 보고서가 최초 제출 후 최대 60분까지 AWS Console에 표시되지 않을 수 있습니다.

Amazon Mobile Analytics가 제공하는 보고서에 대한 자세한 내용은 [보고서 및 모바일 지표](https://aws.amazon.com/mobileanalytics/faqs/#report-and-metric-details)를 참조하십시오.

## Amazon S3
<a name="amazon-s3"></a>

Amazon Simple Storage Service(S3)는 개발자와 IT 팀에 안전하고 내구성과 확장성이 뛰어난 객체 스토리지를 제공합니다. Unity에서 S3를 사용하여 이미지, 동영상, 음악 및 기타 게임에서 사용하는 데이터를 저장하고, 나열하고, 검색할 수 있습니다.

S3에 대한 자세한 내용은 [Amazon S3](https://aws.amazon.com/s3/) 및 [S3 시작하기](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html)를 참조하십시오.

Unity 애플리케이션에서 S3를 사용하는 방법에 대한 자세한 내용은 [Amazon Simple Storage Service(S3)](s3.md)를 참조하십시오.

### S3 기본 서명 구성
<a name="configuring-the-s3-default-signature"></a>

기본 S3 서명은 다음과 같이 구성됩니다.

```
<s3 useSignatureVersion4="true" />
```

이는 S3 요청에 서명 버전 4를 사용해야 할지 여부를 지정하는 데 사용됩니다.

### S3 샘플 사용
<a name="using-the-s3-sample"></a>

**프로젝트** 창에서 **자산**/**AWSSDK**/**예제**/**S3**로 이동한 다음 창의 오른쪽에서 **S3Example** 장면을 선택하여 장면을 엽니다. 이 샘플은 버킷을 나열하고, 버킷 내 객체를 나열하고, 객체를 버킷에 게시하고, 버킷에서 객체를 다운로드하는 방법을 예시합니다. 샘플을 실행하기 전에 다음 단계를 수행하여 샘플을 구성합니다.

1. **계층** 창에서 **S3** 게임 오브젝트를 선택합니다.

1. **인스펙터** 창에서 **S3BucketName** 및 **SampleFileName**의 값을 입력합니다. S3BucketName은 샘플이 사용하는 버킷의 이름이고, S3SampleFileName은 샘플이 지정된 S3 버킷으로 업로드할 파일의 이름입니다.

1. 인증된 역할 및 인증되지 않은 역할이 계정 내 S3 버킷에 액세스할 수 있는 권한이 있는지 확인합니다. IAM 역할에 정책을 적용하는 방법에 대한 자세한 내용은 [역할 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing.html#roles-managingrole-editing-console)를 참조하십시오.

샘플을 실행하려면 편집기 화면의 상단에서 플레이 버튼을 클릭합니다. 앱이 실행되면 여러 개의 버튼이 표시됩니다.
+ Get Objects - AWS 계정 내 모든 버킷에 저장된 모든 객체의 목록을 가져옵니다.
+ Get Buckets - AWS 계정 내 모든 버킷의 목록을 가져옵니다.
+ Post Object - 객체를 지정된 S3 버킷에 업로드합니다.
+ Delete Object - 지정된 S3 버킷의 모든 객체를 삭제합니다.

이 샘플은 게임 화면 위에 피드백을 표시합니다.

## Amazon Simple Notification Service
<a name="amazon-simple-notification-service"></a>

Amazon Simple Notification Service는 빠르고 유연한 완전관리형 푸시 알림 서비스로서, 이 서비스를 사용하면 개별 메시지를 전송하거나 대규모의 수신자에게 메시지를 전송할 수 있습니다. Amazon Simple Notification Service를 사용하면 간편하고 비용 효과적으로 모바일 디바이스 사용자와 이메일 수신자에게 푸시 알림을 보내거나 다른 배포된 서비스에도 메시지를 보낼 수 있습니다. Amazon Simple Notification Service를 시작하려면 [Amazon Simple Notification Service](sns.md)를 참조하십시오.

## AWS Lambda
<a name="aws-lambda"></a>

AWS Lambda는 요청 또는 이벤트에 대응하여 코드를 실행하고 컴퓨팅 리소스를 자동으로 관리하는 컴퓨팅 서비스로, 새로운 정보에 신속하게 대응하는 애플리케이션을 손쉽게 개발할 수 있게 해줍니다. AWS Lambda 함수는 모바일, IoT 및 웹 앱에서 직접 호출할 수 있고 동기식으로 응답을 전송하므로 인프라를 프로비저닝하거나 관리할 필요 없이 모바일 앱에 사용할 확장성, 보안성 및 가용성이 뛰어난 백엔드를 손쉽게 생성할 수 있습니다. 자세한 내용은 [AWS Lambda](lambda.md)를 참조하십시오.