# 시작 단계

> Set up Push Notifications for your project.

시작하기 전에 다음 사항이 준비되었는지 확인합니다.

* UGS와 Analytics에 가입합니다.
* Unity 에디터 프로젝트에 대시보드를 연결합니다.
* 게임 코드에서 UGS를 초기화합니다.

## 가입##sign-up

Push Notifications를 사용하려면 UGS(Unity Gaming Services)에 포함된 Unity Analytics에 가입해야 합니다. Analytics 요금에 관한 내용은 [여기](https://unity.com/solutions/gaming-services/pricing)에서 확인할 수 있습니다.

Unity 계정이 없으면 [계정을 만들고](/services/getting-started.md) [새 프로젝트를 만든](/services/getting-started.md#create-a-project-in-the-unity-dashboard) 후 Unity Gaming Services에 가입합니다.

> **Note:**
>
> 중요: [조직 소유자](/cloud/organizations/members-groups-roles.md)만 Analytics에 가입할 수 있습니다.

1. [Unity Services Dashboard](https://dashboard.unity3d.com/)에 로그인합니다.
2. 측면 패널에서 **Explore Services**를 선택합니다.
3. 상단 배너에서 **Sign Up**을 선택한 후 표시되는 지침을 따릅니다.
4. [Analytics 기술 자료](/analytics.md)를 확인합니다.

## 프로젝트 연결##link-your-project

Unity Push Notifications 서비스를 사용하려면 Unity 에디터에서 프로젝트 ID를 통해 프로젝트를 클라우드 프로젝트에 연결해야 합니다. 프로젝트 ID를 가져오려면 다음 단계를 따릅니다.

1. Unity 에디터 메뉴에서 **Edit** > **Project Settings**로 이동한 후, **Services** 탭을 엽니다.
2. Unity ID로 로그인하지 않았다면 새 Unity ID를 생성하거나 기존 Unity ID로 로그인합니다.
3. 새 프로젝트를 생성하려면 조직을 선택하고 **Create**를 선택합니다. 기존 프로젝트에 연결하려면 **I already have a Unity Project ID**를 선택합니다.
4. 드롭다운에서 조직과 프로젝트를 선택하고 **Link**를 선택합니다.

Services 창의 **Settings** 탭에서 프로젝트 ID를 확인합니다.

## 연동##integration

> **Note:**
>
> Push Notifications SDK에서는 iOS 10 이상과 Android SDK 26(Oreo) 이상을 지원합니다.

연동 단계는 다음과 같이 요약할 수 있습니다.

1. **SDK 연동**: 패키지를 연동하고 Push Notifications를 등록하여 설정 및 키를 입력합니다.
2. **키 업로드**: 비공개 키(Firebase, Apple)를 찾아서 Unity Dashboard에 업로드합니다.
3. **연동 테스트**: 디바이스로 테스트 알림을 전송하여 연동 완료 여부를 확인합니다.
4. **알림 캠페인 생성**: Unity Dashboard에서 첫 알림을 생성하고 예약합니다.

### 1. Push Notifications SDK 연동##1-integrate-the-push-notifications-sdk

#### Push Notifications SDK 설치##install-the-push-notifications-sdk

> **Note:**
>
> Push Notifications SDK가 기본적으로 Unity 에디터 버전의 패키지 관리자 내부에 표시되지 않을 수도 있습니다.

다음 3가지 방법 중 하나로 Unity 프로젝트에 Push Notifications SDK를 설치합니다.

##### 1. Unity 레지스트리를 사용하여 임포트##1-import-using-the-unity-registry

1. **Edit** > **Project Settings**에서 **Project Settings**를 엽니다.
2. Enable Pre-release Packages는 **Package Manager** > **Advanced Settings** > **Enable Pre-release Packages**에서 활성화합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/enable-prerelease.png)
3. **Component** > **Package Manager**에서 패키지 관리자를 엽니다.
4. **Packages** 드롭다운에서 `Unity Registry`를 선택합니다.
5. 오른쪽 상단의 검색 바에서 `Push Notifications`를 검색하여 Push Notifications 패키지를 확인합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/package-manager-sdk.png)
6. 오른쪽 상단에서 `Install`을 선택합니다.

##### 2. 이름으로 임포트##2-import-by-name

1. **Component** > **Package Manager**에서 패키지 관리자를 엽니다.
2. 왼쪽 상단에서 **Add**(**+**) 버튼을 선택하여 새 패키지를 추가하고 **Add package by name...** 을 선택합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/package-manager.png)
3. com.unity.services.push-notifications를 Git URL로 입력하고 Add를 선택합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/unity-services.png)

##### 3. ‘manifest.json’ 파일을 사용하여 임포트##3-import-using-the-manifestjson-file

1. 다음 코드 스니핏을 복사하고 패키지 버전을 조정합니다.
   ```json
   "com.unity.services.push-notifications": "4.0.0-pre.1"
   ```

2. 파일 탐색기에서 프로젝트 폴더의 루트로 이동한 다음, 패키지 폴더 `Packages/manifest.json`으로 이동합니다.

3. `manifest.json` 파일 끝에 복사한 코드와 필요에 따라 끝에 콤마(`,`)를 추가합니다.

#### Push Notifications 등록##register-for-push-notifications

Push Notifications를 받으려면 앱에 Push Notifications가 등록되어 있어야 합니다. 이렇게 하려면 [Push Notifications 등록](./sdk.md#registering-for-push-notifications)에 나와 있는 내용을 따릅니다.

### 2. 서비스 키 업로드##2-upload-your-service-keys

Unity Gaming Services 대시보드에서 알림을 보내려면 Android의 경우 **Firebase**, iOS의 경우 **Apple Developer 계정**에서 서비스 키를 업로드합니다.

#### Google##google

Android 디바이스에 알림을 전송하기 전에 먼저 Unity 프로젝트 설정에 Firebase Service Account Key를 추가해야 합니다. 알림을 테스트하거나 사용하려는 게임의 **모든** UGS 개발 환경에서 수행되어야 하는 단계입니다.

1. [Firebase Console](https://console.firebase.google.com/)로 이동하여 프로젝트를 선택합니다.
2. Project Settings로 이동하고 상단에서 **Service accounts**를 선택합니다.
3. **Create service account**를 선택합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/create-service-account.png)
4. **Generate new private key**를 선택합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/private-key.png)
5. **Generate key**를 선택하여 키 파일을 다운로드합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/generate-key.png)
6. Unity Dashboard의 프로젝트에서 **Liveops** > **Push Notifications** > **Settings**로 이동한 다음, Google Keys로 이동한 후 ‘Google Key’ 열에서 `Add Key` 또는 편집 아이콘을 선택합니다.
7. 이전 단계에서 만든 비공개 키를 업로드하고 **Finish**를 선택합니다.

> **Note:**
>
> 편집 설정 페이지에 다시 들어가면 보안상의 이유로 이 파일이 표시되지 않습니다.


**Frame:**
![](/api/media?file=/push-notifications/media/images/google-key-upload.png)

#### Apple##apple

Apple 디바이스에 알림을 전송하기 전에 먼저 Unity 프로젝트 설정에 Apple 키와 프로젝트, 계정 세부 정보를 추가해야 합니다. Unity Dashboard에서 게임, 개발 환경, 데브 및 프로덕션 빌드 간에 동일한 Apple 키를 재사용할 수 있습니다(키가 있으면 8단계로 이동). 알림을 테스트하거나 사용하려는 게임의 **모든** UGS 개발 환경에서 수행되어야 하는 단계입니다.

1. [Apple Developer](https://developer.apple.com/) 콘솔에 로그인합니다.

2. Certificates, Identifiers & Profiles 페이지로 이동하여 **Keys**를 선택합니다.

3. **+** 기호를 선택하여 새 키를 생성합니다.

4. 키 이름을 지정하고 ‘Apple Push Notifications service (APNs)’ 옵션을 활성화하여 알림을 사용 설정합니다. 그런 다음 **Continue**를 선택합니다. 참고로 계정별로 키 두 개에만 이 기능을 활성화할 수 있습니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/apple-register-key.png)

5. 다음 페이지에서 **Register**를 선택하여 확인합니다.

6. 생성된 키를 다운로드하고 나중에 필요할 수 있는 Key ID를 기록해 둡니다. 키 파일은 한 번만 다운로드할 수 있으며 분실되면 폐기하고 다시 생성해야 합니다.


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/apple-key.png)

7. Unity Dashboard의 프로젝트에서 **Player Engagement** > **Notifications** > **Settings**로 이동하여 상단의 Setup 배너에 있는 `Set Up Keys` 링크를 클릭합니다. 그런 다음 ‘Apple Key’ 열에서 `Add Key` 또는 편집 아이콘을 선택합니다.

8. 다음의 필드 5개를 작성해야 합니다.

* **Key**: 이전 단계에서 만든 키를 업로드합니다.
* **Key ID** 키를 등록할 때 제공되며 Apple Developer 콘솔에서 키를 선택하여 검색할 수도 있습니다.
* **Team ID**: Apple Developer 콘솔의 계정 이름에 표시되는 팀 ID입니다.
* **Topic ID**: 게임의 번들 ID로 채워집니다. Apple Developer 콘솔의 ‘Certificates, Identifiers & Profiles’ 페이지의 ‘Identifiers’에 명시된 것과 정확히 일치해야 합니다.
* **Sandbox**: 게임의 개발 및 디버그 빌드에서 플레이어에게 메시지를 보내려면 Sandbox 값을 **True**로 설정합니다. 프로덕션 빌드에서 사용자에게 메시지를 보내려면 **False**로 설정합니다.


  **Frame:**
  ![](/api/media?file=/push-notifications/media/images/apple-sandbox.png)

9. **Finish**를 선택합니다. 편집 설정 페이지에 다시 들어가면 보안상의 이유로 이 파일이 표시되지 않습니다.

10. XCODE 내에서 애플리케이션을 빌드할 때 앱에 ‘Remote notification’ 기능이 추가되어야 알림을 받을 수 있습니다.


**Frame:**
![](/api/media?file=/push-notifications/media/images/xcode-build.png)

이 작업이 수행되지 않으면 런타임 시 다음 오류 메시지가 전송됩니다.

`Failed to register for remote notifications: no valid “aps-environment” entitlement string found for application`

### 3. 연동 테스트##3-test-your-integration

앱에서 푸시 알림 연동을 테스트하려면 [테스트 가이드](./sdk.md#testing-the-sdk-integration)를 따릅니다.

테스트 도중에 문제가 발생하면 일반적인 디버깅 문제를 다루는 [문제 해결 가이드](./troubleshooting.md)를 참고하십시오.

### 4. 알림 캠페인 생성##4-create-a-notification-campaign

이제 [첫 알림 캠페인을 생성](./use-push-notifications.md)하여 Push Notifications를 사용할 수 있습니다.
