

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

# 모바일 알림을 위해 Amazon SNS와 디바이스 토큰 통합
<a name="mobile-push-send-devicetoken"></a>

앱과 모바일 디바이스를 Apple 푸시 알림 서비스(APN) 및 Firebase Cloud Messaging(FCM)과 같은 알림 서비스에 처음 등록할 때 디바이스 토큰 또는 등록 ID가 해당 서비스에서 반환됩니다. 이러한 토큰/ID는 [https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_PlatformApplication.html) API를 사용하여 앱 및 디바이스에 대한 엔드포인트를 생성하기 위해 Amazon SNS에 추가됩니다. 엔드포인트가 생성되면 Amazon SNS가 올바른 앱/디바이스로 알림을 보내는 데 사용하는 [https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_Endpoint.html)이 반환됩니다.

다음 방법을 사용하여 디바이스 토큰 또는 등록 ID를 Amazon SNS에 추가할 수 있습니다.
+ 를 통해 수동으로 단일 토큰 추가 AWS Management Console
+ [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) API를 사용하여 여러 토큰을 업로드
+ 향후 디바이스에 토큰 등록

****디바이스 토큰 또는 등록 ID를 수동으로 추가하려면****

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 탐색 창에서 **푸시 알림**을 선택합니다.

1. **플랫폼 애플리케이션** 섹션에서 애플리케이션을 선택한 다음 **편집**을 선택합니다. 플랫폼 애플리케이션을 아직 생성하지 않은 경우 [Amazon SNS 플랫폼 애플리케이션 만들기](mobile-push-send-register.md) 가이드에 따라 지금 생성하세요.

1. **엔드포인트 생성**을 선택합니다.

1. **엔드포인트 토큰** 상자에 사용 중인 알림 서비스(예: FCM 등록 ID)에 따라 **토큰** 또는 **등록 ID**를 입력합니다.

1. (선택 사항) **사용자 데이터** 필드에 추가 데이터를 입력합니다. 이 데이터는 UTF-8로 인코딩되고 2KB 미만이어야 합니다.

1. **엔드포인트 생성**을 선택합니다.

엔드포인트가 만들어졌으므로 모바일 디바이스에 메시지를 직접 전송하거나 Amazon SNS 주제를 구독하는 모바일 디바이스에 메시지를 전송할 수 있습니다.

****`CreatePlatformEndpoint` API를 사용하여 여러 토큰을 업로드하는 방법****

다음 단계에서는에서 제공하는 샘플 Java 앱(`bulkupload` 패키지)을 사용하여 Amazon SNS AWS 에 여러 토큰(디바이스 토큰 또는 등록 IDs)을 업로드하는 방법을 보여줍니다. 이 샘플 앱을 사용하여 기존 토큰 업로드를 시작할 수 있습니다.
**참고**  
다음 단계에서는 Eclipse Java IDE를 사용합니다. 이 단계에서는를 설치했고에 대한 AWS 보안 자격 증명 AWS SDK for Java 이 있다고 가정합니다 AWS 계정. 자세한 내용은 [AWS SDK for Java](https://aws.amazon.com/sdkforjava/) 단원을 참조하십시오. 자격 증명에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 보안 자격 증명](https://docs.aws.amazon.com/general/latest/gr/getting-aws-sec-creds.html) 섹션을 참조하세요.

1. [snsmobilepush.zip](samples/snsmobilepush.zip) 파일을 다운로드하여 압축을 풉니다.

1. Eclipse에서 새 **Java 프로젝트**를 생성하고 `SNSSamples` 폴더를 프로젝트로 가져옵니다.

1. [OpenCSV 라이브러리](http://sourceforge.net/projects/opencsv/)를 다운로드하여 빌드 경로에 추가합니다.

1. `BulkUpload.properties` 파일에서 다음을 지정합니다.
   + `ApplicationArn`(플랫폼 애플리케이션 ARN).
   + 토큰이 포함된 CSV 파일의 절대 경로.
   + 성공 및 실패한 토큰에 대한 파일 이름 로깅. 예: `goodTokens.csv` 및 `badTokens.csv`.
   + (선택 사항) 구분 기호, 따옴표 및 사용할 스레드 수에 대한 구성입니다.

   완성된 `BulkUpload.properties`는 다음과 같습니다.

   ```
   applicationarn: arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp
   csvfilename: C:\\mytokendirectory\\mytokens.csv
   goodfilename: C:\\mylogfiles\\goodtokens.csv
   badfilename: C:\\mylogfiles\\badtokens.csv
   delimiterchar: ','
   quotechar: '"'
   numofthreads: 5
   ```

1.  **BatchCreatePlatformEndpointSample.java** 애플리케이션을 실행하여 토큰을 Amazon SNS에 업로드합니다. 성공적으로 업로드된 토큰은 `goodTokens.csv`에 로깅되고 잘못된 형식의 토큰은 `badTokens.csv`에 로깅됩니다.

**향후 앱 설치를 위해 디바이스의 토큰을 등록하는 방법**

이 프로세스에는 두 가지 옵션이 있습니다.

**Amazon Cognito 서비스 사용**  
모바일 앱은 임시 보안 자격 증명을 사용하여 엔드포인트를 생성할 수 있습니다. 임시 자격 증명을 생성하려면 Amazon Cognito를 사용하는 것이 좋습니다. 자세한 정보는 *[Amazon Cognito 개발자 안내서](https://docs.aws.amazon.com/cognito/latest/developerguide/)*를 참조하세요.  
앱 [등록](application-event-notifications.md)을 추적하려면 새 엔드포인트 ARN이 생성될 때 Amazon SNS 이벤트를 사용하여 알림을 받으세요.  
또는 [https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html](https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html) API를 사용하여 등록된 엔드포인트 목록을 검색할 수 있습니다.

**프록시 서버 사용**  
앱 인프라가 설치 시 디바이스 등록을 이미 지원하는 경우 서버를 프록시로 사용할 수 있습니다. [https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html) API를 통해 Amazon SNS로 디바이스 토큰을 전달합니다.  
Amazon SNS에서 생성한 엔드포인트 ARN이 반환되며 향후 메시지 게시를 위해 서버에서 저장할 수 있습니다.