Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

푸시 기술은

사용자가 원하든 원치 않든 어떠한 정보를 제공하는 기술이다.

사용자가 원하는 정보를 직접 찾는 풀 기법과는 상반되는 개념이다.

그런데, 푸시 방식으로 제공하던 기존의 TV나 라디오와 다른 점은 미리 원하는 범위를 지정할 수 있다는 점이다.

참고문헌: http://en.wikipedia.org/wiki/Push_technology

원하든 원치 않든 어떤 정보를 특정 사용자에게 제공하는 서비스

Apple Push Notification Service

2009년 6월 iOS 3.0 포함되어 정식 릴리즈

Apple 제품(iPhone, iPad, iPod)을 이용하는 사용자에게

푸시 알림을 보내기 위해서는 반드시 APNS를 통해 전달되어야 함.

현재, 푸시 알림 기능을 갖는 대부분의 앱에서 사용 중

Cloud to Device Messaging

Android 2.2 froyo 버전 부터 제공

한 단말 App 마다 하루 1000건 제한

발송 계정 생성 시 20만건 제한

발송 건수 추가를 위해서는 별도로 구글 측에 요청 필요.

현재, 네이버톡 / 네이버라인에서 사용중

Always On Messaging

이통사 망부하 이슈 이후 SKT 자체 푸시 플랫폼 개발

SKT TStore를 통해 배포되는 App에서만 이용 가능

: SmartPush(TStore 접속 시 자동설치) 필요.

2011년 6월 미투데이에 최초 적용

현재, 네이버톡 / 미투데이 / 네이버라인 / 블로그에서 이용 중

NHN Notification Infra

NHN 자체 푸시 플랫폼

: C2DM 쿼터 제한 및 수신 품질 문제

: 안드로이드 2.1 이하 버전 푸시 알림 지원

NHN App에서만 이용 가능

: NNI 클라이언트 라이브러리와 함께 빌드 됨.

2011년 4월 네이버톡 적용을 시작으로

미투데이 / 블로그 / 네이버라인에서 이용 중임.

10월 18일 현재 일 수천만 건 이상 발송 중.

감사합니다.

Q and A

푸시 알림?

Q1: 푸시 서버의 단점은 무엇이고 NHN에서는 그 단점을 어떻게 처리하나요?

Q2: 안정성, 배터리 효율이 좋은 푸시 플랫폼은 무엇이고, 어떻게 구축할 수 있을까요?

Q3: 바이너리 BASE64 인코딩 데이터가 전송 가능한지? 그 활용성은?

상시 연결 (Cont')

상시 연결

푸시 플랫폼 이용 시 준비 항목

푸시 구성 요소

푸시 플랫폼 이용 왜?

푸시 플랫폼 필요

1. 연결 유지 및 메시지 전달

2. 단말 고유 번호 할당

직접 메시지를 전달하면 되지 않나요?

그래서 Apple과 Google 등에서 만든 푸시 플랫폼에서 제공하는 상시연결을 이용해야합니다.

상시 연결되어야 합니다.

상시연결하려면 단말에서 백그라운드 프로세스를 허용해야 합니다. (iPhone 허용 X)

1. 보안 채널 유지

단말 고유 번호 전송

또한, 서비스하고자하는 모든단말을

상시 연결하려면 알림 서비스를 위한 서버보다

상시 연결을 맺기 위한 서버가 더 많아야 합니다.

2. 메시지 전송

: 단말 고유 번호

: 메시지

스마트폰

Apple

Google

아이폰 안드로이드폰

푸시 플랫폼

아이폰 안드로이드폰

안드로이드 2.2 이상

APNS

C2DM

+ NNI (업체별 자체 플랫폼)

안드로이드 2.1 이하

스마트폰에 푸시 알림을

어떻게 보내는지 알아볼까요?

C2DM

푸시 플랫폼 (Cont')

아이폰 안드로이드폰

APNS

C2DM

NNI

DeviceQuotaException ?

+ AOM + ...

발송계정당 단말 하나에 일 1000개 이상의

푸시를 보내는 경우 발생함.

AuthToken 갱신은?

하나의 발송 계정으로

몇개까지 푸시를 보낼 수 있을까?

동일한 발송 계정으로 한 단말에 일정 속도 이상

푸시를 보내는 경우 발생함.

이통사 망부하 이슈

발송결과 성공 200 인 경우 HTTP 필드 조회 후 전달된 authToken으로 교체

Authorization: GoogleLogin auth=[AUTH_TOKEN]

HTTP 401 오류인 경우 authToken 필드 초기화 후 clientLogin 재수행

테스트 계정은 일 20만 건 발송 가능

서비스 계정은 일 100만 건 발송 가능

초과 시 QuotaException 발생

일발송량 초기화 시간은 한국시간 오후 3시

하나의 단말에 복수개의 App에서

동일한 발송 계정을 사용할 수 있나?

서로 다른 App에서 발급된 RegistrationId는 매번 다르게 생성됨

테스트 결과 같은 발송 계정으로 복수개의 App에서 사용 가능

AOM

Keepalive?

Feedback?

DeView 2011 Track C, Session4

모바일 푸시 플랫폼 통합 사례, nPush

스마트폰에 알림 메시지를

어떻게 보내는지 알아볼까요?

모바일 푸시 플랫폼 통합 사례, nPush

메시지클라우드개발팀 이희종

NNI

NNI 구성도

APNS

nPush Server

NHN Service Server

NSS = NNI Session Server

NCS = NNI Control Server

Health Check

푸시 플랫폼

Health check 주기는 배터리 소모와 가장 관계가 깊다.

어떻게 하면 health check 주기를 낮출 수 있을까?

서버에서 Health check를 수행

아이폰앱 푸시 수신 안되는 현상

Feedback?

저녁까지 잘되던 푸시 알림이 아침에 수신이 안 된다?

APNS 서버로 분명히 정상 발송 했는데?

왜 수신이 안되지?

삭제된 App의 deviceToken과

다시 새로 설치한 App의 deviceToken이 동일할 수 있다.

APNS 서버와 Switch 서버간에는 실제로는 끊어졌으나 발송 서버에서는 알수 없는 현상

feedback 처리 시간과 토큰 등록 시간과 비교하여

feedback 처리 시간이 토큰 등록 시간보다 최근인 경우에만 해당 토큰을 삭제

C2DM

APNS

NNI

AOM

Experience?

nPush = APNS + C2DM + AOM + NNI

스마트폰 앱에서

푸시 알림 서비스 하려면?

nPush

푸시 알림 구현하자!

nPush Monitoring

푸시 플랫폼마다 발송 기능 구현해야 하나?

푸시 플랫폼 별 인터페이스 단일화?

서로 차이점이 많은데?

테스트 단말에 nPush-Tracer 설치 후

푸시 플랫폼마다 주기적으로 메시지를 발송

현재, 안드로이드만 (C2DM, AOM, NNI) 지원

한번의 개발로 여러 서비스에 적용?

서버로 부터 단말까지 실제 메시지 수신 시간을 측정

수신 시간 추이를 모니터링 하여 푸시 플랫폼 별로

서비스 이상 유무를 상시 모니터링

단말 고유 번호(deviceId) 등록

서비스명, 푸시유형, 단말고유번호

메시지 발송 요청

APNS 메시지

{"aps":{"alert":"...","sound":"...","badge":"..."}, ...}

C2DM 메시지

서비스명, 푸시유형, 단말고유번호, 메시지

data.alert=..., data.sound=..., data.badge=...

AOM/NNI 메시지

{ "alert":"...","sound":"...","badge":"..." }

피드백 확인

서비스명, 푸시유형, 단말고유번호, 처리시간

공통점 과 차이점

푸시 플랫폼 별 차이점

nPush 통계

서비스별 Agent 생성 관리

nPush Client

nPush Japan

APNS / AOM

: 서비스별 Agent마다 보안 연결 유지

: p12 인증서 관리

C2DM

: 서비스별 Agent마다 AuthToken 유지

: 발송계정(emailOfSender) 관리

현재 10종의 앱이 일본 nPush 서비스를 이용

PAM = Push Agent Manager

: 서비스별 푸시 플랫폼 종류 마다 개별 Agent 들을 관리

: 주기적으로 변경사항을 모니터링하고 관리

안드로이드 푸시 알림 플랫폼 종류가 무려 3가지

: C2DM / AOM / NNI

단말 클라이언트 개발 부담 증가

: 통합 클라이언트 개발 필요.

현재 1단계로 각 푸시 메시지를 하나로 통합 수신되도록 개발

: 구글 C2DMessaging 참조

: SmartMessaging 구현

: C2DMReceiver 참조

: SmartReceiver 구현

그 외 다수 모바일앱 nPush 연동 준비 중

2011.08

네이버라인

nPush

이용시작

2011.08

블로그/카페

nPush

이용시작

2011.10

N드라이브

nPush

이용예정

2011.06

미투데이

NNI+AOM

연동추가

2010.10.

미투데이 nPush

이용시작

2011.04.

네이버톡 NNI

연동 추가

2011.02.

네이버톡 nPush

이용시작

2010

2011.1

2012.01

2010.04.

네이버톡

APNS + C2DM

개발의뢰

2010.09.

APNS + C2DM

개발완료

개발인원 1명

2011.03.

NNI

추가 완료

개발인원 3명

2011.06.

AOM

추가 완료

개발인원 1명

Learn more about creating dynamic, engaging presentations with Prezi