애플 푸쉬 노티피케이션 서비스(Apple Push Notification Service : APNs)에 대해서
샅샅이 파해쳐 보도록 하겠습니다. ^*^

아이폰에 대해서 공부하면서, 푸쉬서비스 이해하기가 가장 난해했었는데.. 어느정도 실마리가 풀려나가는 것 같습니다. 이론을 토대로 실무에 적용하면서 배운 많은 것들을 몇가지 소개 해드리겠습니다.

아무 생각없이, 써보자! 라고 했던거라.. 분량이 얼마나 나올지는 모르겠습니다만.. 생각나는대로 계속 업데이트 하겠습니다.

사용자 삽입 이미지



---------------------------------------------------------------------------------------------------------

어플리케이션에서 사용자에게 어떠한 알림메시지나, 이벤트를 주기위해서 푸쉬~라는 서비스가 필요로 합니다.
예를들면, 메신저를 통해 친구가 로그인 했다던가 하면 오른쪽 구석에서 네모난 상자가 올라갔다가 내려가면서 사용자들에게 어떤 상황을 전해 주는걸 푸쉬 서비스라고 생각을 하시면 됩니다.

모바일 디바이스에서도 예외가 아니에요. 디바이스에 설치한 어플리케이션에서 사용자에게 도움이 되는 정보나, 어떠한 상황이 발생했을 때 알려주는 기능이 있어야 되는건 당연하겟죠.

사용자 삽입 이미지
기본적으로 푸쉬알람을 받기위해선, 어플리케이션이 있어야겠죠. 그리고 물론 어플리케이션이 실행중이어야 됩니다. 그래서 윈도우 기반의 휴대폰들을 보면 푸쉬서비스를 받기 위해서 상당량의 프로그램들이 계속 백그라운드로 실행되고 있습니다.

( 왼쪽에 있는게 윈도우 모바일의 작업관리자 화면 인데요 지속적으로 푸쉬알림을 받고, OS를 관리하는 프로세스들이 실행되고 있습니다. )

하지만,

단순히 어플리케이션이 백그라운드로 많이 떠있으면 그만큼 퍼포먼스도 떨어지고, OS도 불안불안해집니다. 특히 개인개발자들이 만든 백그라운드 어플리케이션들은 그 안정성도 보장할 수 없고, 걔네들이 무슨짓을 하는지도 알 방법이 없죠..

그래서 애플이 아이폰을 발표하고, 기존에 모바일 OS와 차별을 두기 위해 꺼내든 카드는 OS의 안정성과 신뢰성입니다.

iTunes AppStore를 통해서 애플의 검수를 모두 마친 어플리케이션들만 판매 / 제공함으로서 사용자들은 믿고 어플리케이션을 받을 수 있게되고, 어플리케이션들의 안정성은 전화기를 껐다,켰다 반복하지 않게 되었습니다. 사용자들은 디바이스가 제멋대로 꺼지진 않을까? 바이러스가 걸려서 내 개인정보가 빠져나가진 않을까? 에 대한 걱정은 깨끗하게 잊을 수 있게 만들었습니다.

그러면, 아이폰은 백그라운드 프로그램을 지원하지 않는데 어떤방식을 통해서 어플리케이션 푸쉬서비스를 받을 수 있을까요? 정답은 바로 APNs에 있습니다.

어플리케이션이 사용자에게 알려줘야 되는 내용을 애플 서버를 경유해서 전달해줌으로 인해서, 그 푸쉬되는 내용에 대해서 신뢰할 수 있게 됩니다.

일반적인 푸쉬 서비스의 흐름은 간단합니다.
( 클라이언트 서비스 서버 ) -> ( 모바일 디바이스 )
반면에, APNs는
( 클라이언트 서비스 서버) -> ( APNS : Apple Push Notification Server ) -> ( 아이폰 )
의 방법을 통해서 사용자에게 푸쉬를 해주는 겁니다.

그리고 APNs는 일반적인 푸쉬서비스와 개념이 약간 다른데요..
일반적으론 백그라운드에 있던 어플리케이션이 푸쉬를 받는 순간 특정한 모듈이 작동하고, 액션이 발생하지만

APNs의 개념은 "어플리케이션에 다음 과 같은 상황이 일어났으니.. 어플리케이션을 실행해서 서버와 통신을 하도록 해라." 라고 할 수 있을 것 같습니다. 푸쉬 메시지가 어플리케이션의 어떤 행동을 해주는게 아니란 얘기죠.. ^^

APNs를 이용함에 있어서 단점도 있습니다.
전세계 아이폰 어플리케이션에서 원하는 푸쉬의 내용이 각 나라의 통신사 서비스를 통해서 애플서버를 경유해 가기 때문에, 반응이 느릴 수 밖에 없습니다. 그리고 푸쉬가 폭주하는 날이면 종종 알람을 받지 못하는 경우도 일어납니다. ( 경우에 따라 다르지만, 푸쉬를 제공하는 클라이언트 서비스 서버가 트래픽을 감당못하고 뻗어버리는 경우가 더 많죠... )
그리고, 푸쉬로 제공할 수 있는 데이터의 제한이 있습니다.
다음 파트에서 또 언급을 할 거지만.. 256byte의 제한이 있습니다. 텍스트의 크기가 아니고, 모든 푸쉬서비스에 관련된 패킷 사이즈가 256byte 미만이어야 합니다.

푸쉬 서비스 치곤 할 수 있는게 너무 없다고 생각하실 수도 있을거에요, 하지만 애플이 원하는건 안정성을 담보로 아이폰의 안녕을 바라고 있으니까요 ^^

구현의 관련된 사항과, 또 무언가 들은... 계속적으로 써 나가겠습니다..
그럼 안녕~

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/16 11:56 2010/03/16 11:56
오랜만에 음악 포스팅!



우연히 디씨질을 하다가.. 발견한 노랜데..
무슨 디씨질하는데 음악까지 올려놓는 고생을 하다니.. 하면서 멍하니 듣고 있다가
!!!
느낌표가 머리속을 때리면서.. 오호호.
노래가 너무 좋은거 있지..
그래서 이것저것 찾아봤지..

한국인의 고질적인 문화사대주의 덕분인지.. 당근 미쿡이나 유럽에 이쁜 여성 어쿠스틱 그룹을 기대했었는데..
오~ 필리핀 밴드구나..
좀 의외였다고 생각했는데, 필리핀이 미국령으로 있으면서.. 미국애들이랑 친하게 지냈으니
어찌보면 우리나라보다 더욱 인프라가 더 잘 되있을지도 모르겠다..

밴드 이름 역시 독특하다.
MYMP, M.Y.M.P 뜻이 뭔지 봤더니.. Make Your Momma Proud ??
엄마를 자랑스럽게 하라니....

밴드 구성원도 오빠와 여동생 단 둘이다..
노래를 한번 들어보면 엄마가 참 자랑스러울만도 하겠구나.. 싶다 ㅎㅎ

어쨋건.. 음악을 들어보시라~

Love was a lighthouse guiding the way
We were two boats of the ocean
Following shadows that led us astray
Case of mistaken emotion

Suddenly you've drifted back to arms

And while we were lost in the dark

Love stood still

Movin' us together
Love stood still
Leading us towaeds each other
Now we're back at the start
Coz while we were apart
Love stood still

Love was a fire burned down to the coast

Waiting for something to spark
We were two fireflies drawn to the glow
Singing you lit the flames in my heart

Love stood still

Movin' us together
Love stood still
Leading us towaeds each other
Now we're back at the start
Coz while we were apart
Love stood still

I had my reasons for letting you go

But holding you again, I know

Love stood still

Movin' us together
Love stood still
Leading us towaeds each other
Now we're back at the start
Coz while we were apart
Love stood still

Now you ask me to say

I'll always feel this way
Now then nothing has ever changed

Love stood still

Movin' us together
Love stood still
Leading us towaeds each other
Now we're back at the start
Coz while we were apart
Love stood still

가사 보면서도 자꾸 울컥울컥 하네..

쨋던
국내에서는 Acoustic Proposal Vol.1 , Vol.2로 배스트 앨범형식으로 나왔더라구..
영등포 타임스퀘어 들렸다 왔는데.. 거긴 Vol1.밖에 없어서.. 다음에 사오기로.. ㅎㅎ
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/14 22:19 2010/03/14 22:19