중요한 점을 정리하면.
1. 먼저 SK텔레콤은 카카오톡의 `킵 얼라이브` 방식으로 생길 수 있는 망 부하를 대비하기 위해 자체적인 `푸시서버` 구축에 나선다.
2. 앞으로 SK텔레콤의 푸시서버와 카카오의 자체 서버, 구글의 서버를 모두 이용하게 될 것
===================================================================================================================
앞으로는 sk이용자는 sk텔레콤의 푸쉬서버를 사용하고 kt이용자는 안드로이드 버전에 따라서 2.1이하는 카카오톡 서버, 2.2이상은 구글 서버를 사용하는 식으로 분산되게 될 듯 하네요.
그리고 sk 텔레콤의 푸쉬가 어떤 방식으로 구현될지 궁굼해집니다.
통신사가 제공하는 푸쉬라면 long live connection 이 필요가 없이 sms기반으로도 가능할테니까요. 이경우 전혀 3g망의 부담없이 알림이 가능해져서 통신사 입장에서도 좋을텐데 말이죠.
(통신사 입장에서 sms는 비용이 들지 않는 원가 0원의 서비스입니다.)
데이터사용료는 통신사의 꼬심에 가입한 고객이 내는거고 그걸 받아먹는건 카카오톡이 아니라 통신사입니다.
스크는..?!
일단 c2dm은 아닌듯한데..
그럼 또.. 스크푸시 서비스가 상주하겟군요..
어떻게될지 모르지만 이런 매미없는....
통신사와-카카오 의 관계에서 아이폰은 카카오톡을 쓸때 푸시서버를 이용하여 통신사쪽 서버의 부담을 주지(적게)않는다는 기사를 본적 이있습니다. 이때문에 안드로이드 유저가 많은 sk가 kt에 피해 망부하가 심하다는 추측성 내용이 있었지요....
푸시서버라는것은 별도의 우회 서버를 뜻하는건가요? 헷갈리는군요 ;;;;
(요즘 광고의 2ghz와 관련된것인지.....^^;;;)
푸쉬라는 것은 서버측의 데이터에 변경 사항이 있을 때 서버측에서 클라이언트로 알려주는 방식입니다.
기존의 인터넷 연결 방법에서는 클라이언트에서 서버 측으로 변경 사항이 있는지 물어보고(폴링) 그에 대한 답신을 받는 형태로 진행됩니다만, 이 경우 데이터 변경사항이 없을 경우에도 계속 확인용 트래픽이 발생하니 매우 비효율적이지요.
그러나 모바일 기기는 그 특성상 인터넷 연결 상태가 계속 바뀌게 되기 때문에 서버측에서 클라이언트를 찾는 것이 힘들게 됩니다. 그래서 일반적으로 사용하는 방법이 일정주기로 오랜시간동안 연결을 유지하는 폴링을 하면 서버측에서 그 연결을 유지하고 있다가 변경사항이 있을 경우 그 연결을 통해서 변경사항을 알려주게 됩니다. 이 것이 현재 사용되는 모바일 푸쉬의 일반적인 방법입니다.
간혹 sms로 암호화된 코드를 전송하고 그 값을 통해 알림을 하는 푸쉬서비스도 있고, 통신사와 함께 별도의 폴링없는 푸쉬를 구현하는 경우도 있습니다.
애플의 아이폰의 경우 백그라운드에서 실행되는 것이 금지되어 있었기 때문에 이러한 역활을 수행하려면 APN(apple push notification)을 이용하는 방법 밖에 없었습니다. 따라서 앱서버와 아이폰 사이에 항상 애플의 푸쉬서버가 존재하게 되고, 아이폰은 단지 애플의 푸쉬서버와의 연결만 유지하면 되지요. 그리고 애플의 푸쉬서버는 대용량 서버이면서도 굉장히 잘 관리가 되고 있습니다.
(현재는 일부 앱들이 애플 푸쉬를 경유하지 않고 자체 푸쉬를 사용하는 경우가 있습니다. 스카이프 등이 한 예인데, 이런 앱들을 사용할 경우 폴링을 여러번 해야하므로 전력소모가 급증하는 문제가 있습니다.)
안드로이드의 경우에는 앱들이 백그라운드에서 실행하는 것이 허용이 되기 때문에 자체적인 푸쉬를 구축하기가 쉽고, 무엇보다 안드로이드에 구글의 공식 푸쉬(C2DM 혹은 AC2DM - android cloud to device messaging) 가 적용이 된 것이 2.2 이후 입니다. 2.1이하의 버전에서는 C2DM사용이 불가하고 2.2 이상의 버전에서도 대량의 푸쉬를 사용하려면 구글과 별도로 협의를 해야합니다.
카카오톡의 경우 아이폰용은 처음부터 어쩔 수 없이 APN을 사용했지만, 안드로이드용 출시시에는 자체 푸쉬를 구현하는 수밖에 없었죠. 다만 설계시 안정적인 푸쉬를 위해서 너무 자주 폴링을 하게 설계를 했고, 무엇보다 문제는 서버가 무응답하는 경우를 서버가 다운된 경우를 배제하고 인터넷 연결에 약간의 문제가 생겼을 경우만으로 상정하고, 서버 무응답시 수초간격으로 폴링을 하는 것이 요새 문제가 된 것입니다.
특히 모든 앱이 하나의 푸쉬서버와만 연결되면 되는 아이폰에 비해서 앱들별로 푸쉬를 따로 받는 경우가 빈번한 안드로이드는 각각의 앱들이 백그라운드에서 실행되고 있어야 하니, 메모리나 전력면에서 그리고 트래픽 면에서 비효율적이죠. 공식적인 푸쉬 서비스로 통일하는 것이 모바일 환경에 좋습니다.
카카오톡은 작은 업체이고 서버관리 능력도 애플이나 구글에 비해 크게 떨어지는 것이 사실이니, 구글이 C2DM을 내놓은 시점에서 최대한 그것을 이용할 방법을 찾았어야 했지만, 한국 SW업계 특유의 "돌아가기만 하면되" 정신으로 별다른 개선 작업이 이루어 지지 않았던 것으로 보입니다. 최근에 푸쉬가 문제화되니 C2DM도 적용하겠다고 하고 skt와 별도의 푸쉬 서버도 구축하겠다고 하고 있는데...
카톡 서비스 상주 안할수는 없습니다. 그러면 그 Push는 누가 받나요?
안드로이드 구성을 보면 서비스는 무조건 백그라운드 작업이 있으면 떠있는게 맞습니다.
SMS? 그것도 다 서비스로 떠있는겁니다. 멀티미디어 재생도 서비스를 포함하고 있구요...
서비스에 대해서 너무 일희일비 하실 필요 없습니다.
안드로이드에서 백그라운드에서 하는 모든 작업은 서비스로 하는거니까요...
내가 꼭 원하는 백그라운드 작업이 있으면 서비스가 뜨는게 맞는겁니다. 그것외에 다른게 돌면 문제지만요...
카톡 쓰면서 메시지 주고받고 안하실라믄 서비스 안띄우는걸 원하시는게 맞습니다만 절대 그건 아니겠죠?
이런게 진정한 상생의 길이죠. ㅋ