안녕하세요. 너만바라보면 입니다.

저번시간에는 런처와 추저에 대해서 알아보았습니다. 런처와 추저는 일반적인 윈도우폰 서비스에서 가장 많이 이용되므로 복습 잊지 마시길 바랍니다!

이번시간에는 푸시 노티피케이션에 대해서 알아보도록 하겠습니다.

 

푸시 노티피케이션(Push Notification)은 우리가 스마트폰에서 자주 쓰는 서비스 입니다. 예를 들어서 카카오톡 같은 메신저 어플리케이션에서 실시간으로 메시지를 전송할 수 있습니다. 그리고 상대방에게 메시지가 왔을 경우 바로 알려줍니다. 이것이 가능한 이유는 바로 카카오톡이 백그라운드 상태에서 계속 실행되고 있으면서 어떤 서비스의 상태가 바뀐다던가 이벤트가 발생해서 그 이벤트를 알려줄 수 있기 때문입니다. 이것이 우리가 말하는 푸시 노티피케이션이죠.

자 그렇다면 푸시 노티피케이션은 어떤 원리로 실행될까요?

1.png

위의 그림을 참고하시면 됩니다.

우선 처음에 윈도우폰 7 애플리케이션은 MPNS에 접속해서 통신 채널을 요청합니다. MPNS란 마이크로소프트 푸시 노티피케이션 서비스(Microsoft Push Notification Service)의 약자입니다. 그러면 MPNS에서 이 요청을 받았으면 응답을 보내야 겠죠? MPNS는 응답으로 통신채널의 URI를 보내줍니다. URL이 아닙니다! 통신채널의 URI는 해당 윈도우폰 기기와 애플리케이션의 정보를 바탕으로 만들어지는 유일한 값이죠. 애플리케이션은 아까 MPNS로부터 전달받은 URI를 클라우드 서비스로 전송합니다. 왜 그럴까요? 클라우드 서비스에서 이 URI를 윈도우폰으로 다시 보내기 위한 주소로 사용하기 때문이죠.. 이렇게 URI가 클라우드 서비스로 전송된 뒤 클라우드 서비스에서는 아까 전달받은 URI 주소로 푸시 노티피케이션 전송이 필요할 경우 MPN 프로토콜로 메시지를 구성해 MPNS에 메시지 전송을 요청합니다. 마지막으로 MPNS에서는 클라우드에서 받은 푸시 노티피케이션을 타입에 알맞게 조정해 윈도우폰에 전송합니다.

뭔가 조금 복잡하죠? 그냥 한번만 읽고 아 그렇구나 생각하세요. 너무 깊게 이해하시기에는 조금 어려운 내용일 수 있으니까요!

윈도우폰 7에서는 토스트(Toast) 노티피케이션, 타일(Tile) 노티피케이션, 로우(row) 노티피케이션 세가지 종류의 푸시 노티피케이션을 제공합니다.

뭔가 다르니까 종류를 구분해 놓았겠죠?

토스트(Toast)와 타일(Tile) 노티피케이션은 애플리케이션이 실행되지 않았을 때 쓰입니다. 그런데 로우 노티피케이션은 애플리케이션이 화면상에서 실행중일때 계속해서 메시지를 수신하는데 쓰입니다. 마치 카카오톡 처럼 말이죠.

 

2.png

위의 화면은 토스트 노티피케이션의 모습입니다. 토스트 노티피케이션은 현재 사용자 화면 상단에 항상 볼 수 있게 텍스트로 구성되어 있는 노티피케이션 타입을 말합니다. 주로 이메일,문자 수신, 페이스북 친구요청, 애플리케이션 다운로드 현황 등 텍스트로 보여주는게 효과적일 경우 토스트를 사용합니다.

 

3.png

위의 화면은 타일(Tile) 노티피케이션 입니다. 타일 노티피케이션은 새로 온 문자메시지의 갯수 처럼 새로운 정보를 전달하는대 시각적인 요소로 정보를 보여주는 것입니다. 백그라운드 이미지와 타이틀, 카운트로 구성되어 있습니다.

 

로우(Row) 노티피케이션은 애플리케이션에서 푸시 노티피케이션의 사용없이 클라우드 서비스로부터 메시지를 받기 원할 때 입니다. 트위터,주식 시세 표시 애플리케이션 처럼 실시간으로 계속해서 발생하는 정보를 전달하는 데 쓰입니다.

노티피케이션에 대해서 알아보았으면 우리는 직접 만들어봐야 겠죠? 하지만 아쉽게도 이 푸시 노티피케이션을 제대로 구현하기 위해서는 서버측과 클라이언트 측 프로그램을 만들어야 합니다.

즉 정보를 보내주는 서버가 구축되어야 하고 이를 받는 클라이어 그 내용만 해도 정말 많은 분량입니다. 또한 실버라이트에서 http서비스를 어떻게 사용하는지도 알아야 합니다. 그래서 우리는 이번시간에는 푸시노티피케이션은 이러한 것이 존재한다고만 하고 넘어갈 것입니다.

MSDN 라이브러리에 푸시노티피케이션에 관한 자세한 설명이 나와있습니다. MSDN 라이브러리를 참고하시기 바랍니다. 실제로 푸시 노티피케이션에 대한 내용을 실습하시려면 110분이 소요된다고 나와있더군요.(여기서 우리는 좌절을 느낍니다.)

http://channel9.msdn.com/learn/courses/WP7TrainingKit/WP7Silverlight/UsingPushNotificationsLab

 

이번시간은 조금 강의가 짧았습니다. 쉬어가신다 생각하시고 다음 강의를 준비해 주세요.

다음강의는 조금 어렵거든요!

정말 수고 많으셨습니다. 다음시간에 뵙겠습니다.





안녕하세요.윈도우폰에 관심이 많은 너만바라보면 입니다.