# Outsystems

## Pushwoosh 플러그인 설치하기

[OutSystems Forge](https://www.outsystems.com/forge/component-overview/1556/pushwoosh-plugin)에서 Pushwoosh 플러그인을 설치하는 것으로 시작합니다. 가장 빠른 방법은 개발 환경의 OutSystems 탭으로 이동하여 거기에서 설치하는 것입니다.

### Pushwoosh 구성하기

지원할 각 플랫폼에 대해 Pushwoosh를 구성해야 합니다. 구성이 완료되면 플러그인과 함께 사용할 Pushwoosh의 Application Code를 받게 됩니다.

#### iOS의 경우

[iOS용 Pushwoosh 구성하기](/ko/developer/first-steps/connect-messaging-services/ios-configuration/ios-platform-configuration/) 방법을 알아보세요.

#### Android의 경우

[Android용 Pushwoosh 구성하기](/ko/developer/first-steps/connect-messaging-services/android-configuration/android-firebase-configuration/) 방법을 알아보세요.

### 애플리케이션에 Pushwoosh 플러그인 추가하기

1. 애플리케이션에서 "Manage Dependencies…"를 사용하여 Pushwoosh 플러그인에 대한 참조를 추가합니다.

<img src="/outsystems.webp" alt=""/>

2. "PushwooshNotifications" 블록을 다음에 추가합니다:

   - 애플리케이션에 로그인이 없는 경우 "Layout" 블록
   - 애플리케이션에 로그인이 있는 경우 "LayoutBlank" 블록

   "PushwooshNotifications" 블록을 추가할 때 일부 플레이스홀더는 디자인 타임에만 사용할 수 있고 런타임에는 Pushwoosh가 작동하지 않으므로 플레이스홀더 내부에 추가하지 마십시오.

3. PushwooshNotifications에서 다음 파라미터를 설정합니다:

   - **PushwooshApplicationCode:** Pushwoosh에서 애플리케이션을 생성한 후 얻은 Pushwoosh Code입니다.
   - **FCMSenderId:** Android를 구성하는 동안 얻은 식별 번호입니다. 애플리케이션이 iOS에서만 사용 가능한 경우 이 필드를 비워 둘 수 있습니다.
   - **NotificationReceivedEvent (선택 사항):** 애플리케이션이 포그라운드 상태일 때 알림을 받으면 호출되는 이벤트입니다.
   - **NotificationOpenedEvent (선택 사항):** 사용자가 기기에서 알림을 클릭할 때 호출되는 이벤트입니다.

Android 앱에서 Pushwoosh 플러그인을 사용하는 경우 다음을 수행하십시오:

1. Firebase에서 [`google-services.json`을 얻습니다](https://support.google.com/firebase/answer/7015592). Google 서비스의 패키지 이름은 빌드 중인 OutSystems 애플리케이션의 앱 식별자와 일치해야 합니다.
2. 루트에 `google-services.json`을 포함하는 zip 파일을 만듭니다.
3. 이전 단계의 "google-services.zip" 파일을 OutSystems 애플리케이션에 업로드하고 다음을 확인하십시오:
   - "Name"을 "google-services.zip"으로 설정
   - "Deploy to Target Directory"를 "google-services"로 설정

<img src="/outsystems2.webp" alt=""/>

기기에서 푸시 알림을 받으려면 기기를 등록해야 합니다. 사용자가 애플리케이션을 사용하기 위해 로그인해야 하는 경우 "Login" 화면으로 이동하여 "Login" 액션을 편집하십시오.

<img src="/outsystems3.webp" alt=""/>


"DoLogin" 액션 뒤에 기기를 등록하는 코드를 추가합니다. 다음과 같아야 합니다:

<img src="/outsystems4.webp" alt=""/>

애플리케이션에 로그인이 없는 경우 이 코드를 `PushwooshNotifications` 블록의 `OnInitializeOver` 이벤트에 추가할 수 있습니다.

<img src="/outsystems5.webp" alt=""/>

이 이벤트 핸들러에서 `RegisterDevice` 액션을 호출합니다.

<img src="/outsystems6.webp" alt=""/>

개발자 인증서를 사용하여 iOS 모바일 앱을 생성하는 경우 OutSystems 모듈의 Extensibility Configurations 속성에 기본 설정을 추가해야 합니다:

```json
{
  "preferences": {
    "global": [
      {
        "name": "aps-environment",
        "value": "development"
      }
    ]
  }
}
```

<img src="/outsystems7.webp" alt=""/>

이 기본 설정은 entitlements 파일에 추가됩니다([Apple Developer 문서](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html)에서 entitlements에 대해 자세히 알아보세요).

프로덕션 인증서를 사용하여 iOS 모바일 앱을 생성하는 경우 OutSystems에서 `aps-environment` 기본 설정의 기본값이 `production`이므로 기본 설정을 지정할 필요가 없습니다.

이제 애플리케이션이 푸시 알림을 받을 준비가 되었습니다. [모바일 앱을 구성하고 생성](https://success.outsystems.com/documentation/10/delivering_mobile_apps/generate_and_distribute_your_mobile_app/)하여 기기에 설치하십시오. 이 시점에서 Pushwoosh 인터페이스를 사용하여 앱에 알림을 보내고 모든 것이 올바르게 구성되었는지 확인할 수 있습니다. 앱이 실행 중인 경우 알림이 표시되지 않습니다. 대신 `NotificationReceivedEvent` 이벤트가 즉시 발생합니다.

### 알림 보내기

알림을 보내려면 Pushwoosh [API Access Token](/ko/developer/api-reference/api-access-token/)이 필요합니다. Pushwoosh 콘솔에 접속하여 "API Access"로 이동한 다음 "Generate new access token"을 클릭하여 생성합니다.

<img src="/outsystems8.webp" alt=""/>

모든 기기에 알림을 보내려면 `SendPushNotificationToAll` 액션을 사용합니다.

<img src="/outsystems9.webp" alt=""/>

이 액션은 다음 파라미터를 사용합니다:

- **PushwooshApplicationCode:** Pushwoosh에서 애플리케이션을 생성한 후 얻은 Pushwoosh Code입니다.
- **ApiAccessToken:** 이전에 얻은 Pushwoosh API Access Token입니다.
- **Message:** 보내려는 메시지 텍스트입니다.
- **Badge:** iOS 애플리케이션 아이콘에 표시되는 숫자입니다.
- **Deeplink:** 알림과 함께 보낼 딥 링크입니다. [딥 링크 정의 방법](https://success.outsystems.com/documentation/how_to_guides/development/how_to_define_mobile_app_deep_links/)을 알아보세요.

예를 들어, 이 액션을 사용하여 "PushTest"라는 애플리케이션에 "Hello from OutSystems" 메시지를 보내면 iOS에 다음과 같이 표시됩니다:

<img src="/outsystems10.webp" alt=""/>

### 추가 정보

- 앱이 실행 중인 경우 기기에 알림이 표시되지 않습니다. 대신 앱으로 전송되고 `NotificationReceivedEvent` 이벤트가 발생합니다. 이 상황에서 앱이 수행할 작업을 정의해야 합니다.
- 푸시 알림이 활성화되는 데 시간이 걸릴 수 있습니다. 알림이 수신되지 않으면 추가 문제 해결을 하기 전에 몇 분 정도 기다리십시오.

## 피드백 공유

귀하의 피드백은 더 나은 경험을 만드는 데 도움이 됩니다. SDK 통합 과정에서 문제가 발생하면 언제든지 의견을 보내주시기 바랍니다. 어려움이 있으시면 주저하지 마시고 [이 양식을 통해](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform) 저희에게 의견을 공유해 주세요.