Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
푸시 기술은
사용자가 원하든 원치 않든 어떠한 정보를 제공하는 기술이다.
사용자가 원하는 정보를 직접 찾는 풀 기법과는 상반되는 개념이다.
그런데, 푸시 방식으로 제공하던 기존의 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. 연결 유지 및 메시지 전달
그래서 Apple과 Google 등에서 만든 푸시 플랫폼에서 제공하는 상시연결을 이용해야합니다.
상시 연결되어야 합니다.
상시연결하려면 단말에서 백그라운드 프로세스를 허용해야 합니다. (iPhone 허용 X)
단말 고유 번호 전송
또한, 서비스하고자하는 모든단말을
상시 연결하려면 알림 서비스를 위한 서버보다
상시 연결을 맺기 위한 서버가 더 많아야 합니다.
2. 메시지 전송
: 단말 고유 번호
: 메시지
아이폰 안드로이드폰
아이폰 안드로이드폰
안드로이드 2.2 이상
APNS
C2DM
스마트폰에 푸시 알림을
어떻게 보내는지 알아볼까요?
아이폰 안드로이드폰
APNS
C2DM
NNI
발송계정당 단말 하나에 일 1000개 이상의
푸시를 보내는 경우 발생함.
동일한 발송 계정으로 한 단말에 일정 속도 이상
푸시를 보내는 경우 발생함.
발송결과 성공 200 인 경우 HTTP 필드 조회 후 전달된 authToken으로 교체
Authorization: GoogleLogin auth=[AUTH_TOKEN]
HTTP 401 오류인 경우 authToken 필드 초기화 후 clientLogin 재수행
테스트 계정은 일 20만 건 발송 가능
서비스 계정은 일 100만 건 발송 가능
초과 시 QuotaException 발생
일발송량 초기화 시간은 한국시간 오후 3시
서로 다른 App에서 발급된 RegistrationId는 매번 다르게 생성됨
테스트 결과 같은 발송 계정으로 복수개의 App에서 사용 가능
DeView 2011 Track C, Session4
스마트폰에 알림 메시지를
어떻게 보내는지 알아볼까요?
모바일 푸시 플랫폼 통합 사례, nPush
메시지클라우드개발팀 이희종
nPush Server
NHN Service Server
NSS = NNI Session Server
NCS = NNI Control Server
푸시 플랫폼
Health check 주기는 배터리 소모와 가장 관계가 깊다.
어떻게 하면 health check 주기를 낮출 수 있을까?
서버에서 Health check를 수행
저녁까지 잘되던 푸시 알림이 아침에 수신이 안 된다?
APNS 서버로 분명히 정상 발송 했는데?
왜 수신이 안되지?
삭제된 App의 deviceToken과
다시 새로 설치한 App의 deviceToken이 동일할 수 있다.
APNS 서버와 Switch 서버간에는 실제로는 끊어졌으나 발송 서버에서는 알수 없는 현상
feedback 처리 시간과 토큰 등록 시간과 비교하여
feedback 처리 시간이 토큰 등록 시간보다 최근인 경우에만 해당 토큰을 삭제
C2DM
APNS
NNI
AOM
스마트폰 앱에서
푸시 알림 서비스 하려면?
nPush
푸시 알림 구현하자!
nPush Monitoring
푸시 플랫폼마다 발송 기능 구현해야 하나?
푸시 플랫폼 별 인터페이스 단일화?
서로 차이점이 많은데?
테스트 단말에 nPush-Tracer 설치 후
푸시 플랫폼마다 주기적으로 메시지를 발송
현재, 안드로이드만 (C2DM, AOM, NNI) 지원
한번의 개발로 여러 서비스에 적용?
서버로 부터 단말까지 실제 메시지 수신 시간을 측정
수신 시간 추이를 모니터링 하여 푸시 플랫폼 별로
서비스 이상 유무를 상시 모니터링
단말 고유 번호(deviceId) 등록
메시지 발송 요청
APNS 메시지
C2DM 메시지
AOM/NNI 메시지
피드백 확인
공통점 과 차이점
푸시 플랫폼 별 차이점
nPush 통계
서비스별 Agent 생성 관리
nPush Client
nPush Japan
APNS / AOM
: 서비스별 Agent마다 보안 연결 유지
: p12 인증서 관리
C2DM
: 서비스별 Agent마다 AuthToken 유지
: 발송계정(emailOfSender) 관리
현재 10종의 앱이 일본 nPush 서비스를 이용
안드로이드 푸시 알림 플랫폼 종류가 무려 3가지
: C2DM / AOM / NNI
단말 클라이언트 개발 부담 증가
: 통합 클라이언트 개발 필요.
현재 1단계로 각 푸시 메시지를 하나로 통합 수신되도록 개발
: 구글 C2DMessaging 참조
: SmartMessaging 구현
: C2DMReceiver 참조
: SmartReceiver 구현
그 외 다수 모바일앱 nPush 연동 준비 중