[이렇게 사용하세요!] SENS를 활용한 Push App 구현 및 Firebase 연동하기

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM
13 min readOct 26, 2021

네이버 클라우드 플랫폼 SENS는 어떤 서비스인가요?

SENS(Simple & Easy Notification Service, 이하 SENS) 서비스는 누구나 쉽게 네이버 클라우드 플랫폼 상에서
메시지를 전송할 수 있는 플랫폼 서비스입니다. SMS나 LMS와 같은 문자 메시지는 물론 iOS 및 Android 환경에서
스마트폰 앱 Push 알림 서비스를 쉽게 구현할 수 있도록 다양한 기능을 제공하고 있습니다.

네이버 클라우드 플랫폼 포털 “SENS” 소개

아래와 같이 “SENS” 서비스에 대한 사용자 가이드를 확인하실 수 있습니다.
※ 네이버 클라우드 플랫폼 사용자 가이드 : http://docs.ncloud.com/ko/sens/sens-1-1.html

네이버 클라우드 플랫폼 “SENS” 사용자 가이드

SENS에는 어떤 기능들이 제공되나요?

프로젝트 관리, 통합 Message History Dashboard뿐만 아니라, 메시지 전송 서비스 개발자를 위한 API도 함께 제공하고 있습니다.

네이버 클라우드 플랫폼 “SENS” 제공 기능
네이버 클라우드 플랫폼 “SENS” API 사이트

참고로 사용 요금은 아래와 같습니다.

네이버 클라우드 플랫폼 “SENS” 서비스 요금

간략한 소개가 끝났으니, 이제 SENS를 이용해 Push 전송 App을 구현하고, Firebase 서비스를 연동하여 메시지를 전송하는 방법에대해 알아보겠습니다.

Push App은 어떻게 구현할 수 있나요?

SENS Push 서비스를 구현 및 적용하기 위해서는 아래와 같은 절차가 필요합니다.

- Firebase 또는 Apple Push 서비스 등록
- Firebase Application Project 생성 및 등록
- NAVER CLOUD PLATFORM SENS Push Certificates 정보 등록 및 확인
- NAVER CLOUD PLATFORM SENS API 또는 UI를 통한 Push 메시지 발송


자세한 방법은 아래와 같이 단계별 예제를 통해서 살펴보겠습니다.

[ Firebase Console 설정 및 확인 방법 ]
SENS 서비스의 Push 기능 사용을 위해서는 우선 App 인증서 등록 절차가 필수입니다. Android(GCM, FCM) 또는 iOS(APNS) 별로 각각 앱의 인증서를 생성 후에 SENS Certificates에 등록해야 합니다.

- Android : Firebase ( https://console.firebase.google.com )

Android Firebase 포털 접속 예제

- iOS : APNS ( https://developer.apple.com/ )

iOS Apple Developer 포털 접속 예제

본격적인 Push 예제 소스 구현에 앞서 아래와 같이 프로젝트 설정 방법에 대해 설명해드리겠습니다.

(1) Firebase Console에 접속 후 [+] 버튼을 클릭해 App Push 서비스를 연결할 프로젝트를 생성합니다.
— Firebase Console URL : https://console.firebase.google.com

Firebase Console 접속 및 프로젝트 생성 예제

(2) ‘프로젝트 명’과 ‘국가’를 선택 후 저장하면, 간단하게 프로젝트가 생성됩니다.

Firebase Console 국가 및 기타 정보 입력 예제

(3) [Project Settings]를 클릭합니다.

Firebase Console Project Setting 예제

(4) 생성된 프로젝트 정보를 확인합니다.

Firebase Console Project 정보 확인 예제

(5) 두 번째 탭의 [클라우드 메시징]을 클릭하여, SENS 서비스에 등록할 정보들을 확인합니다.

Firebase Console SENS 등록 정보 확인 예제

위와 같이 정보가 정상적으로 등록이 되었다면, 소스 구현 및 연동할 준비가 1차 완료되었습니다.

[ Push App 구현 및 설정 방법 ]
아래의 구현 예제는 Android App으로 구현이 되기 때문에 아래와 같이 Android Studio를 다운로드해서 설치 후 진행합니다.

(1) Android Studio를 각 사용자 OS에 맞게 다운로드해서 설치합니다. (Android Studio 설치 및 설정 방법은 생략합니다.)
— URL : https://developer.android.com/studio/index.html?hl=ko

Android Studio 다운로드 및 설치

(2) 설치된 Android Studio를 실행하여, Basic Project를 생성합니다.
(기본적인 항목들을 선택 후 [생성]을 누르면 기본 프로젝트가 생성됩니다.)

Android Studio 프로젝트 생성(Basic Project)

(3) [Tools > Firebase]를 선택하면, 우측에 Firebase 관련 메뉴를 확인할 수 있습니다.

Android Studio Firebase 메뉴 확인

(4) 여러 기능 중에서 [Cloud Messaging]를 클릭하면, 아래와 같이 설정 화면을 볼 수 있습니다.
(필자의 경우 이미 Firebase 연결 및 설정이 되어 있는 상태라서 모드 녹색으로 체크되어 있으며,
최초에는 버튼에 생성되어서 위에서 설정한 Firebase 정보를 연결하면 됩니다.)

· 참고 #1 : https://firebase.google.com/docs/android/setup? hl=ko
· 참고 #2 : https://firebase.google.com/docs/cloud-messaging/android/client? hl=ko

Android Studio Cloud Messaging 메뉴 확인

위와 같이 정보 확인 및 등록 메뉴를 확인할 수 있으며,
다음으로 아래와 같이 FCM에 App 등록 정보를 입력할 수 있습니다.

Android Studio FCM 정보 입력(#1)
Android Studio FCM 정보 입력(#2)

(5) Android Studio에서 위의 Firebase 연결이 정상적으로 실행되면, 아래와 같은 화면을 확인할 수 있습니다.

Android Studio & Firebase 연결 성공 예제

(6) 최초 프로젝트가 생성되면 “{package}.MainActivity.java” 와 같은 파일이 존재하는데, 위에서 최종 설정된 Firebase 설정이 정상인지 확인을 위해서는 아래와 같이 코드를 추가합니다.

… (중략)

// 연결된 Firebase로부터 Token 정보를 받아옵니다.
FirebaseInstanceId.getInstance().getToken();

// App Create 시 Log에 토큰 정보를 출력합니다.
// 해당 Device Token 정보는 SENS에 사용자 디바이스 등록 시 필요합니다.
String token = FirebaseInstanceId.getInstance().getToken();
Log.d(“FCM_Token”, token);

… (중략)

(7) 이제 “FirebaseInstanceIDService.java” 파일과 “FirebaseMessagingService.java” 2개 파일을 작성합니다.
(아래와 같이 구현된 소스를 참조하실 수 있습니다.)

— Main Activity (MainActivity.java)
※ Android Main App 소스를 구성하고 있습니다.
※ Firebase 접속 및 발급된 Device Token 정보를 받을 수 있습니다.

MainActivity.java 소스 예제

- Firebase Instance ID Service (FirebaseInstanceIDService.java)
※ App 접속 시 Token 정보를 재발급 받습니다.
※ App에 정보를 사용하기 위해서 전달합니다.

FirebaseInstanceIDService.java 소스 예제

- Firebase Instance Service (FirebaseInstanceService.java)
※ SENS > Firebase > App으로 전달되는 정보를 받아서 분석 후 처리합니다.
※ Main Activity App으로 내용을 전달 후 Push Message를 받아서 처리합니다.

FirebaseInstanceService.java 소스 예제

- App Manifest.xml 수정 (~app/AndroidManifest.xml)
Push 전송을 위해서는 manifest.xml 파일에 내용을 추가 및 수정하고,
<service/> 태그를 <activity/> 태그 아래 내용을 추가합니다.

AndroidManifest.xml 소스 예제

(8) 위의 정보 등록 및 동기화가 정상적으로 이루어지면, 아래와 같이 “google-service.json” 파일이 자동으로 생성되고, Firebase 계정과 동기화됩니다.

Firebase & Android Studio 정보 동기화 확인

[ SENS 프로젝트 등록 및 설정 방법 ]
예제 샘플 소스의 구현이 완료되었다면, 다음 단계로 “SENS” 서비스 프로젝트 등록 및 설정하는 방법에 대해 살펴보겠습니다.

(1) SENS 서비스(상품)에 접속 후 프로젝트를 생성합니다.
[ 콘솔 > All Products > SENS ] 선택 후 좌측 메뉴에서 확인할 수 있습니다.

SENS 서비스 Main Dashboard

(2) 프로젝트 생성 완료 후 [ SENS > Push > Certificates ]에서 프로젝트를 선택 후 아래와 같이 인증서 정보를 등록합니다.

SENS 프로젝트 Push 인증서 등록

(3) 사용자 디바이스 등록은 아래의 API를 통해서 진행이 가능합니다.

SENS 프로젝트 사용자 디바이스 등록 API

(4) 위의 절차를 통해 등록된 디바이스 정보를 확인할 수 있습니다.

SENS 프로젝트 사용자 디바이스 조회

(5) SENS App Push API를 통해 발송된 메시지 이력을 아래와 같이 UI에서 확인할 수 있습니다.
[ SENS > Push > Message ]를 클릭하면, 아래의 그림과 같이 확인을 할 수 있습니다.

SENS Push Message 전송 이력

(6) API를 통해 Push 메시지 발송 후 아래와 같이 전송 결과 및 메시지를 조회할 수 있습니다.

SENS Push Message 발송 결과 확인

(7) 아래와 같이 Android Studio의 Log와 실제 Emulator에 도착한 메시지를 확인할 수 있습니다.

Android Studio Logcat 메시지 확인
Android Studio Emulator 메시지

(8) 아래와 같이 SENS 서비스를 통해 발송된 메시지 이력을 SENS API를 통해서도 확인할 수 있습니다.

SENS Push Message API
SENS Push Message API Response Body
SENS Push Message API Response Body 설명

(9) 마지막으로 Firebase Console에서도 아래와 같이 전송 결과를 분석할 수 있습니다.

Firebase에서 SENS를 통해 전송한 Push Message 확인

네이버 클라우드 플랫폼 SENS 서비스는 어떻게 사용할 수 있나요?

네이버 클라우드 플랫폼의 SENS 상품 및 서비스 플랫폼을 사용하기 위해서는 아래와 같이 네이버 클라우드 플랫폼 포털 사이트 및 사용자 가이드를 참고하시면 쉽게 사용하실 수 있습니다.

- 네이버 클라우드 플랫폼 포털
: https://www.ncloud.com
- 네이버 클라우드 플랫폼 사용자 가이드
: http://docs.ncloud.com/ko
- 네이버 클라우드 플랫폼 SENS 소개 : https://www.ncloud.com/product/applicationService/sens
- 네이버 클라우드 플랫폼 SENS 사용자 가이드 : http://docs.ncloud.com/ko/sens/sens-1-1.html
- 네이버 클라우드 플랫폼 SENS 콘솔 : https://console.ncloud.com/sens/home
- 네이버 클라우드 플랫폼 SENS API
: http://docs.ncloud.com/ko/sens/sens-1-4-2.html

글을 마무리하며…

지금까지 네이버 클라우드 플랫폼의 SENS 서비스를 활용하여 Mobile App Push 서비스를 구현하고, 사용하는 방법에 대해서 공유하여 보았습니다.
네이버 클라우드 플랫폼 SENS 서비스를 활용하면 국내뿐만 아니라, 다양한 국가의 해외 사용자에게도 메시지 발송 서비스가 가능합니다.
네이버 클라우드 플랫폼 SENS 상품 및 서비스에 많은 관심을 부탁드리며, 끝까지 읽어 주셔서 감사합니다.

--

--

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM

We provide cloud-based information technology services for industry leaders from startups to enterprises.