안드로이드, IOS에서 사용되는 Push 서비스에 대한 자료로, 10분정도
소요될 예정입니다.
사실 저희 팀에서 안드로이드를 사용하여 메신저를 구현하기 위한 자료였는데 지금은 뺀 상태입니다만 추후 메신저를 구현할 분들에게 이런 기능이 있다 란 것만 알려드리려 준비했습니다.
개요입니다
스마트폰 보급이 늘어나면서 SNS,SNG,MIM 등 이러한 서비스 들이 대중화 되어 가고 있습니다.
(mim클릭) 인스턴트 메신저는 즉각적인 메시지를 중계하는 클라이언트입니다.
인스턴트 메신저는 실시간으로 대화가 이루어진다는 점에서 이메일과 다릅니다
또한, 대부분의 인스턴트 메신저 서비스는 현재 접속해 있고 대화 가능한 목록을 보여주는 접속자 정보 기능을 제공합니다. 이것을 흔히 '친구 목록'이라 부릅니다.
'자리 비움 메시지'를 자동으로 남겨주는 기능을 지원합니다.(돌아가서)
이 서비스들의 필수 기술인 Push Notification에 대해 간단히 알아보았습니다.
(클릭)
애플은 APNS를 지원합니다.
APNS는 각종 어플들이 백그라운드로 돌아가고 있을 때에도 해당 어플을 깨우거나 메시지를 전달하기 위한 서비스 입니다.
하나의 영리기업인 apple은 자체적으로 APN 서버를 운영하고 있습니다. 최근, 많은 서비스들이 APN 서버를 사용하고 있으며 이 덕분에 IPhone에서 Push가 늦게 온다는 이야기가 종종 들을 수 있습니다.
(다음)
세계 최고의 기업인 구글이 중심이 되어 개발된 안드로이드는 푸시서비스를 지원하지 않습니다. push를 지원하지 않는다는 개발자들의 불만이 많아지자 구글은 프로요에 C2DM을 적용합니다. (클릭) 위는 C2DM 서버의 참고그림입니다 (5초세고)(클릭)
접근 철학이란 말을 썼는데, 안드로이드는 표면적으로 오픈소스라 발표를 했기 때문에
구글측에서는 운영비용이 높은 push서버를 유지할 이유가 없는 것이기 때문입니다
예로 푸시서비스를 안드로이드와 애플 양 진영에서 사용하는 카카오톡으로 설명하겠습니다
카카오톡 안드로이드 버전은 주기적으로 Keep Alive를 하는 폴링방식으로 Push를 대체하였습니다. 즉, 카카오톡은 실제 메시지 전송량과 관계없이 keep Alive를 하고있는 것 입니다.(클릭)
(잠시 있다가) 안드로이드 버전의 카카오톡은 가입만 해도 매달 1만 7280건의 트래픽이 발생합니다
(클릭)
이러한 폴링 방식의 근본적 문제는 응답 서버가 장애를 일으킬 경우 입니다. 서버가 중지될 경우엔 KeepAlive가 서버반응을 받을때까지 계속 동작하게 됩니다. 여러분이 아실꺼라 생각합니다만 이것이 DDos 공격입니다. 카카오톡은 작년 11월부터 10여차례 서버가 중지되었습니다. 이 때문에 이통사에서 카카오톡이 망 부하를 초래한다고 하는 것이 거짓이 아님을 알 수 있습니다
마무리입니다
서비스 사업자는 서비스만 고민하면 전부 라는 발상은 매우 무책임하며 운영하는 서버 장애로 전체 네트워크에 과부하를 준다는 것은 통신사 뿐만 아니라 다른 서비스 사업자에게도 피해를 가져오는것이므로, 시스템 전체의 건강을 생각하며 서비스를 해야 할 것 입니다.
발표자료_PUSH.pptx