http://ikspres.springnote.com/pages/1615814.xhtml
지난 7월 31일에 iPhons의 Push Notification Service(PNS) 의 API가 일부 개발자에게 공개되었다. PNS는 iPhone 3G 발표로 전세계가 주목했던 지난 WWDC 2008 키노트에서 애플의 Senior VP인 Forstall이 소개한 새로운 서비스이다. 키노트를 본 사람 중에는 PNS를 눈여겨 본 사람들도 많겠지만, 일반 언론에서는 거의 다뤄지지 않았기 때문인지 알지 못하는 사람들도 많다.
PNS는 무엇인가?
간단히 말해서 PNS는 iPhone의 어플리케이션에게 Notification을 Push 방식으로 보낼 수 있는 서비스이다. 이 서비스는 애플이 운영하는 전용 서버를 통해 제공되며, Push 기능이 필요한 어플리케이션들의 3'rd party 서버들은 PNS가 제공하는 API를 통해서 이 서비스를 이용할 수 있다.
PNS는 어떤 경우에 사용하나?
PNS를 사용할 수 있는 대표적인 서비스 중에 하나는 인스턴트 메시징이다. 보통 IM 어플리케이션은 사용자가 대화를 하지 않는 상태에서도 계속해서 (백그라운드로) 수행되면서 네트워크 연결을 열고 있어야 한다. 누가 언제 메시지를 보내올지 모르기 때문이다.
그런데 애플의 PNS를 사용하면 그럴 필요가 없다. iPhone 은 PNS로 부터 메시지를 수신하기 위해 하나의 공통 IP연결을 유지하고 있다가, PNS로부터 메시지를 받으면 그 메시지를 받아야 할 해당 어플리케이션을 깨워서 전달해준다.
(위 그림은 어플리케이션이 새로 수신한 메시지가 하나 있다는 것을 아이콘 상에 표시하고 있는 모습.)
PNS는 반드시 사용해야 하나?
물론 아니다. 아니 사실은 그렇다. 더 자세히 말하면 일반적인 개발환경에서는 아니고, iPhone 개발환경에서는 그렇다.
Windows 나 Linux와 같은 보통의 개발환경에서는 PNS와 같은 서비스가 없더라도 각 어플리케이션이 백그라운드로 수행되면서 자신의 서버로부터 데이터를 대기하도록 만들면 된다. 하지만 iPhone에서는 어플리케이션을 백그라운드로 수행되도록 개발할 수 없게 되어있다. 헉!? 즉, 모든 외부 개발 어플리케이션은 User-Mode로 동작한다. 그래서 IM같은 어플리케이션을 만들려면 반드시 PNS를 사용해야 한다.
애플은 왜 이런 방식을 선택했나?
먼저 애플의 주장은 이렇다.
iPhone과 같은 모바일 단말에서 소프트웨어를 개발할 때 고려해야할 아주 중요한 두 가지 요소는 바로 성능과 배터리 소모이다. 그런데 AppStore를 통해서 누구가 개발해서 배포할 수 있는 환경에서 IM이나 이메일 클라이언트와 같은 종류의 어플리케이션들이 기존과 같은 방식으로 동작한다면(즉, 제각기 자신의 서버와 connection을 유지하면서 백그라운드로 수행된다면) CPU 점유와 배터리 소모가 불가피하게 많아질 것이다. 이것은 매우 나쁜 상황이다. 따라서 애플은 PNS 서비스를 제공하여 사용자들이 쉽게 서버의 Push기능을 개발할 수 있게 하면서도 단말의 CPU 리소스와 배터리를 최대한 절약할 수 있도록 해준다.
물론 이 주장은 틀린 얘기가 아니며 분명히 PNS는 좋은 점이 많은 방식이다. 하지만 모든 일에는 장단점이 있기 마련인 법. PNS에 반대하는 사람들은 보통 다음의 두 가지 점을 지적한다.
첫 번째는 Push기능을 사용하는 모든 응용 서비스들이 반드시 애플의 PNS서비스를 사용해야만 한다는 점이다. 이것은 어떤 의미에서 서비스들이 애플의 통제하에 놓이게 되는 것을 의미한다.
두 번째는 장애 가능성이다. 모든 Push 또는 Notification 메시지는 애플의 PNS를 거쳐야만 하므로 만약 애플의 PNS서비스에 장애가 발생하면 해당하는 모든 응용 서비스들이 영향을 받게된다.
(반대하는 사람들의 생생한 의견들이 댓글로 달려있는 PNS 관련 게시물)
끝으로 내가 생각하는 또 하나의 문제점은 사용료이다.
현재는 PNS가 무료인 것으로 알려져 있다 하지만 정식 서비스 오픈이 9월로 예정되어 있기 때문에 구체적인 서비스 조건은 아직 알 수 없고, 원래부터 뭐든지 제대로 만들고 값도 제대로 받는 애플의 특성상 어떤 식으로든 돈 벌 수 있는 방식으로 서비스를 운용할 것으로 예상된다.
이 경우 어플리케이션들은 어떤 형태로든 이용료를 지불해야 한다.(또는 애플이 개별 애플리케이션에게 직접 이용료를 받지않고 뭔가 광고와 연계하여 수익을 창출할 지도 모르겠다.) 이 것은 오픈소스나 무료 어플리케이션 만들려고 할 때 커다란 장애 요소가 될 수 있다.
PNS는 새로운 시대의 SMS?
나는 키노트에서 PNS 얘기를 듣자마자 기존 이동전화 서비스의 SMS를 떠올렸다. 오늘날 이동전화 서비스에 있어 SMS는 단순히 사용자간에 짧은 메시지를 교환하는 원래의 목적 외에도 많은 중요한 역할들을 하고 있다.
이동전화에서 물건 구매를 위한 인증에 사용되며, 어떤 서비스나 웹 사이트에 가입기 위한 인증에도 사용된다. 그리고 PNS처럼 특정 어플리케이션으로 어떤 정보를 push할 때도 SMS를 사용한다. 그리고 마지막으로 매우 규모가 큰 광고 채널로 사용되고 있다.
SMS의 이러한 다양한 활용성 때문에 이동통신 사업자에게 있어 SMS는 수익적으로 매우 중요한 존재인 것은 물론이고 외부의 여러 응용 서비스들에 대한 가입과 과금, 광고 등을 제어할 수 있게 해주는 존재이기도 하다.
"애플은 어쩌면 PNS로 SMS와 비슷한 그 무엇을 가지려고 하는 것이 아닐까?"라는 나의 경계는 너무 지나친 것일까?
나는 맥북프로와 아이팟 셔플을 사용하고 있는 사용자로서 애플의 제품과 서비스를 매우 좋아한다. 그 기술력과 디자인은 정말 최고 수준이다. 하지만 MP3, 노트북에 이어 이동전화기, 그리고 온라인 콘텐츠와 서비스에까지 매우 빠른 속도로 세력을 넓히고 있는 애플이 조금씩 두려워지는 것도 사실이다.