home
Favorite
RSS 2.0
기사 분류 > Embedded Computing
Special Feature
Around the Embedded
Around News
IT News
Hot News
Report
Embedded Computing
Technical Focus
Guest Article
Event
Joy News
Series
플랫폼 클라우드를 이용한 푸시 알림 서비스 활용 하기
TECHNICAL FEATURE
글 황은정 2012-02-02 |   지면 발행 ( 2012년 2월호 - 전체 보기 )

TECHNICAL FEATURE


모바일 장치에서 클라우드 컴퓨팅 활용 방안 ①
플랫폼 클라우드를 이용한 푸시 알림 서비스 활용 하기




폰이나 태블릿과 같은 모바일 장치에서 구동되는 애플리케이션 개발 시에 클라우드 컴퓨팅 플랫폼인 윈도우 애저를 활용하는 방법에 대한 설명과, 이를 이용해서 카카오톡에서 메시지를 전송할 때 사용하는 것과 같은 푸시 알림 서비스를 개발하는 방법을 알아본다.


글 박중석 과장 (jspark@microsoft.com ) / 한국 마이크로소프트


연재차례
1. 플랫폼 클라우드를 이용한 푸시 알림 서비스 활용 하기
2. 테이블, 큐, 블랍 등의 다양한 데이터 저장소 활용 하기
3. 안전하게 외부의 사용자 인증 정보를 활용 하기


모바일 장치와 클라우드 서비스
요즘은 어디서든 스마트 폰이나 태블릿 등을 이용해서 인터넷이나 온라인 서비스를 활용하는 사람들을 쉽게 볼 수 있듯이, 과거 몇 년 동안 아주 빠른 속도로 진행된 모바일 장치들의 보급과 기술의 발달은 이http://www.techworld.co.kr/PHOTO/PHOTO_FIlES/12020223.jpg를 이용하는 개인의 생활 방식을 바꾸고 있다.


모바일 장치를 이용자와 공급자의 관점에서 바라보면, 이 중에 공급자는 다시 하드웨어 공급자와 이 하드웨어 기반의 애플리케이션 공급자로 나눠서 생각해 볼 수 있다. 실제로 특정 모바일 장치가 시장에 나왔을 때 이용자들이 주로 쓰는 것은 장치 위에서 구동되는 애플리케이션이며, 이런 이용자의 수요는 앱 스토어 같은 온라인 장터를 기반으로 새로운 수익을 내고자 하는 애플리케이션 서비스 공급자의 자발적인 참여를 이끌어냈다. 하지만 모바일 애플리케이션 서비스로 수익을 성공적으로 내기 위해서는 서비스에 대한 개발 및 관리 운영 역량이 필요하다. 큰 규모의 업체에서는 많은 인력 및 자본을 투자해서 안정적인 서비스를 운영 할 수 있지만, 작은 규모의 업체에서는 운영에 많은 비용을 쓰기 어렵고, 이는 안정적인 서비스를 제공하는데 문제가 된다.


전 세계 IT 산업 전반에서 수 년간 화두로 논의 되고 있는 클라우드 컴퓨팅은 이런 모바일 장치용 애플리케이션 개발을 비롯한 많은 분야에서 대안을 제시하고 있다. 총 3회로 예정된 기고를 통해 모바일 장치가 클라우드 컴퓨팅의 어떤 부분들을 활용할 수 있는지 실제적인 예를 통해서 다뤄보고자 한다.


푸시 서비스의 이해
모바일 장치에서 사용자에게 메시지를 전달하는 방식으로 자주 활용되는 것 중에 하나인 푸시 알림 서비스를 클라우드에서 구동하는 방법을 살펴보겠다. 푸시 알림 서비스는 휴대 전화에서 문자가 왔을 때 알림 표시가 되는 것처럼 사용자에게 실시간으로 메시지를 푸시 하는 방식을 말한다. 해외는 'What''s App', 국내 서비스로는 '카카오톡'과 같이 많이 사용되는 모바일용 애플리케이션에서 사용자에게 메시지가 전달되는 방식을 생각해 볼 수 있다.


푸시 알림의 동작 방식 대해서 이해하기 위해, 모바일 장치가 서버와 통신하는 방식을 살펴 보면 크게 두 가지로 나눠 볼 수 있다. 하나는 모바일 장치에서 서버에 접근하는 것이며, 이는 서로 간에 통신에 이용하는 프로토콜 사이의 문제가 없다면 PC와 같은 클라이언트에서 웹 서비스들을 소비하는 방식과 다르지 않게 구현 및 사용할 수 있다.(예를 들면 REST, SOAP, JSON 등의 프로토콜을 이용)
다른 하나는 서버에서 모바일 장치에 접근을 하는 것이다. 외부에 서비스를 제공하기 위해서 운영되는 서버와 다르게 모바일 장치에서는 주로 외부의 서비스를 이용한다. 따라서 외부의 서비스에서 모바일 장치로 접근하기 위해서는 외부의 서비스에 모바일 장치와 관련한 정보가 노출되어 대기하고 있어야 한다.


하지만, 모바일 장치 운영체제의 자체적인 유지 관리에 필요한 서비스가 아닌, 외부 개발사에서 개발한 애플리케이션들마다 모바일 디바이스의 메모리에 상주하면서 외부의 서비스를 모니터링 하는 것은 모바일 장치의 배터리나 메모리 같은 한정된 자원을 효율적으로 사용할 수 없게 한다.
따라서
현재 이와 같은 이유 등으로 마이크로소프트의 윈도우폰, 애플의 iOS, 구글의 안드로이드 등의 모바일 운영체제에는 외부에서 장치 쪽으로 메시지를 보내는 방식을 통합해서 관리하는 기능을 내장하고 있으며, 애플리케이션 개발사에서는 이를 활용하는 형태로 개발을 하고 있다.


푸시 알림 서비스의 동작 방식
그러면 일반적인 알림 서비스(Notification Service, NS)가 동작하는 방식에 대해서 간략히 알아본다. 모바일 애플리케이션 서버는 클라우드에서 서비스되고 있다고 가정한다. 크게 장치가 푸시 알림을 구독 하는 과정과 서비스 등록 이후에 서버 쪽에서 푸시 알림을 장치에 보내는 과정으로 나눌 수 있다.


(1) 모바일 장치에서 알림 서비스(NS) 쪽에 통신을 할 채널 URL을 요청한다.
(2) NS에서 모바일 장치로 통신할 채널 URL을 반환한다.
(3) 모바일 장치에서 클라우드의 서비스에 채널 URL을 전송한다. 해당 채널 URL이 모바일 애플리케이션을 서비스하는 서버 쪽에 저장된다.
(4) 클라우드의 웹 서비스에서 NS로 알림 메시지를 보낸다.
(5) NS에서 모바일 장치로 알림 메시지가 전송된다.
(1) 클라우드의 웹 서비스에서 NS로 메시지를 보낸다.
(2) NS에서 모바일 장치로 메시지를 보낸다.
(3) 모바일 장치에서 메시지를 받고, 클라우드의 서비스를 호출한다.
(4) 클라우드의 웹 서비스에서 응답으로 요청한 메시지를 보낸다.


지금까지 설명한 일반적인 푸시 알림 서비스의 형태를 마이크로소프트 푸시 알림 서비스(MPNS)와 윈도우폰을 이용해서 동작하는 구조를 표현해보면 다음과 같다.


윈도우폰 모바일 운영체제에 Push Client에서 MPNS와 등록 및 메시지를 받아서, 이를 사용하고자 하는 애플리케이션과 연동된다. 이외의 방식은 동일하므로 순서 별 설명은 생략한다.


늘어나는 트래픽 처리
지금까지 푸시 알림 서비스를 모바일 장치에 있는 애플리케이션에서 어떻게 사용하는지에 대해서 살펴봤다. 그런데 개발한 애플리케이션의 사용자 수가 많아지고, 이 애플리케이션에 포함된 푸시 알림 서비스의 사용량이 많아질 경우에 이와 함께 연동되는 웹 서버 사용량이 늘어나는 것을 애플리케이션 개발사 측에서 감당해야 한다.


일반적으로 서버를 확장하는 방법에는 스케일 업 방식의 확장과, 스케일 아웃 방식의 확장이 있다. 스케일 업 방식은 더 높은 성능을 낼 수 있도록 더 큰 하드웨어 자원(CPU, 메모리, 하드디스크 등)을 사용하는 방식이다. 하지만 현존하는 하드웨어에는 낼 수 있는 성능의 한계가 있기 때문에, 많은 비용을 들이더라도 충분한 효과를 얻지 못할 수도 있다.


다른 확장 방법인 스케일 아웃 방식은 서버의 개수를 늘려서 여러 서버에서 처리하도록 방식을 바꾸는 것이다. 웹 서버에서 이와 같은 작업을 하기 위해서는 앞 단에 로드밸런서를 붙여서 집중되는 부하가 서버 별로 분산될 수 있게 해주면 된다.


모바일 애플리케이션의 특성상 많은 사용자가 동일한 시간대에 몰리는 것을 고려해본다면 스케일 아웃 방식이 지속적인 유지 관리를 위해서는 더 효율적일 수 있다. 하지만 애플리케이션 개발사의 규모가 크지 않을 경우에는 스케일 아웃으로 서버들을 늘렸을 경우, 관리 및 유지하기 위한 부가 비용 및 인력 투자가 들어가게 되며, 이는 개발사가 애플리케이션 개발에 집중하는데 방해요소가 된다.


해결책으로 클라우드 컴퓨팅의 활용과 PaaS
이런 문제를 해결하기 위해서 모바일 애플리케이션 개발사는 사용한 만큼만 지불할 수 있고, 또한 관리적인 부분에 대한 부담에 크게 감소하는 클라우드 컴퓨팅을 활용하는 것을 고려해 볼 수 있다. 외부의 클라우드 서비스는 방식에 따라서, 인프라를 서비스로 제공받는 것(IaaS)과 플랫폼을 서비스로 제공받는 것(PaaS)이 있다.


IaaS의 경우에는 운영체제나 서버들을 포함한 기존 자체적인 서버에서 사용하던 구조나 방식들을 대부분 그대로 활용할 수 있다는 장점이 있고, 물리적인 장애에 대해서 신경을 쓰지 않을 수 있지만, 서버를 호스팅 받았을 때와 마찬가지로 운영체제나 개발용 런타임들의 관리를 해야 한다. 예를 들면 로드밸런서를 추가된 서버들과 연결하는 것도 직접 설정이 필요하다.


하지만 PaaS에서는 개발사 입장에서는 클라우드 플랫폼에 지원할 수 있는 형태로 서비스를 개발하는 노력은 필요하지만, 이렇게 개발한 이후에 배포를 하면 그 이후에는 자신들이 애플리케이션과 그 애플리케이션이 사용하는 데이터에 대한 부분만을 관리해 주면 되며, 확장에 대한 부담을 덜 수 있다.


마이크로소프트의 클라우드 플랫폼, 윈도우 애저
마이크로소프트에서 서비스하고 있는 윈도우 애저는 이런 클라우드 플랫폼 서비스이며 컴퓨팅 자원과 저장소 자원을 구분해서 컴퓨팅 서비스에서는 상태 값을 가지지 않도록 함으로써 서비스의 규모를 유연하게 늘리거나 줄일 수 있도록 되어 있다.


또한 윈도우 애저는 기존 마이크로소프트의 닷넷 뿐만 아니라 JAVA, PHP 등과 같은 언어로 개발된 대부분의 애플리케이션을 사용할 수 있으며, 일반 웹 애플리케이션은 물론 엔터프라이즈, 게임 등과 같은 다양한 시나리오에 맞도록 서비스를 운영할 수 있다.


윈도우 애저를 활용하는 모바일 애플리케이션을 서비스 시나리오에대한 개발을 보다 쉽게 할 수 있도록 제공하는 모바일 툴킷이 각각의 모바일 운영체제 별로 있으며, 이 중에 윈도우폰 툴킷에서 윈도우 애저를 이용해 푸시 알림 서비스를 사용하는 부분을 살펴 보겠다.


윈도우 애저 및 윈도우폰 개발 환경과 툴킷 설치
마이크로소프트에서 제공하는 웹 플랫폼 설치 관리자(WPI)를 이용하면 개발 하는데 필요한 소프트웨어들을 간단하게 설치할 수 있다. WPI를 이용해서 Windows Azure SDK for. NET을 설치하면 윈도우 애저 개발에 필요한 환경이 구성이 되며, 마찬가지로 윈도우폰 개발을 위해서는 Windows Phone SDK 7.1도 설치 하면 된다.


개발 환경의 설치를 마쳤으면 Codeplex라는 마이크로소프트의 오픈 소스 사이트에 있는 윈도우폰용 윈도우 애저 툴킷 프로젝트(Windows Azure Toolkit for Windows Phone)를 다운받는다. 이 프로젝트에는 푸시 알림 서비스를 포함해서 클라우드 서비스에 활용할 수 있도록 구성된 샘플들이 포함이 되어 있다. 또한 해당 소스 코드들은 문서화가 되어 있고, 지속적으로 업데이트가 되므로 개발에 효과적으로 활용할 수 있다.


툴킷을 실행하고 푸시 알림 서비스 테스트
툴킷을 설치하면 Visual Studio의 Cloud 프로젝트에 추가되는 Windows Phone Cloud Application을 선택, 진행해서 실행하면 윈도우폰용 에뮬레이터와 클라우드의 서비스 웹 페이지와 볼 수 있다.(로컬 PC를 가상 윈도우 애저 클라우드 환경으로 만들거나, 윈도우 애저에 직접 웹 애플리케이션을 올려서 테스트 해볼 수 있다.)


윈도우폰 애플리케이션의 notification 화면에서 Enable push notification 체크박스를 클릭해주면, 윈도우폰 사용자 정보가 클라우드 쪽으로 전송되고, 클라우드의 웹 페이지에서는 해당 윈도우폰 사용자를 볼 수 있다. 그리고 해당 사용자에게 푸시 알림 메시지를 보낼 수 있다.


참고로 윈도우폰에서는 푸시 알림을 전달하는 방식이 Toast, Tile, Raw 총 3가지다. Raw는 메시지 자체만 보내서 폰의 애플리케이션에서 사용하는 것이며, Toast는 폰 화면의 상단에 바 형태로 알림이 가는 것, 그리고 Tile은 윈도우폰 첫 화면에 있는 타일에 표시를 하는 방식이다.


클라우드의 장점을 활용해서 모바일 장치로의 푸시서비스를 쉽게 구현
지금까지 모바일 장치 위에서 구동되는 애플리케이션을 개발하는데 있어서, 클라우드 서비스의 필요성과 푸시 서비스의 구조 및 활용 예를 윈도우 애저와 윈도우폰을 통해서 살펴 보았다. 클라우드의 장점을 활용하면 관리적인 부분에 대한 신경을 덜 쓰고, 모바일 장치에서 구동되는 애플리케이션 개발 자체에 집중할 수 있다. 다음 연재 기사에서는 모바일 장치에서 클라우드의 저장소를 활용하는 부분에 대한 내용을 다루도록 하겠다.


[그림 및 표는 PDF를 참고]


※ 다음기고는 4월호에 계속 됩니다.

<Embedded News>

위 기사와 이미지 무단전제를 금지 

관련 태그 : 클라우드 MS 모바일 푸시 알림 박중석과장  
이전 페이지
분류: Embedded Computing
2012년 2월호
[관련기사]
학생 IT 축제 ‘2014 이매진컵’ 미국 시애틀서 개막 (2014-07-31)
포티넷, 초당 1Tbps 성능 방화벽 제품 출시 (2014-07-31)
ST, 고해상도 타이머 탑재 ‘디지털 파워 MCU' 출시 (2014-07-25)
ams, 높은 정밀도 자랑하는 마그네틱 위치 센서 출시 (2014-07-23)
VM웨어, 아태지역 하이브리드 클라우드 시장 공략 나선다 (2014-07-18)
컴퓨웨어, iOS8 기반 애플리케이션 성능 관리 지원 솔루션 출시 (2014-07-14)
LG유플러스, 국내 최초 클라우드 형 통합보안서비스 출시 (2014-07-14)
삼성 모바일 앱 스토어, ‘삼성 갤릭시 앱스’로 개편 (2014-07-11)
MS ‘서피스 프로3’ 국내 예약판매 실시 (2014-07-11)
VM웨어, 매직 쿼드런트 ‘x86서버 가상화 부문’ 리더 선정 (2014-07-10)
최근 많이 본 기사
IBM, IDC 마켓스케이프 보고...
트랜센드, 차세대 스토리지 ...
삼성전자, 북미 TV 시장 점유...
CA, SNS 계정 기반 ‘BYOID’...
안드로이드 SurfaceFlinger와...
리니어, 2kVAC, 2.5W 절연 마...
안드로이드 시스템과 리눅스
학생 IT 축제 ‘2014 이매진...
안드로이드 바인더(Binder)의...
CSR, CSRmesh 개발 키트 출...
과월호 보기:
Tag Cloud
ST마이크로일렉트로닉스모바일매스웍스자브라STM32SKT다쏘시스템TIZENST구글IAR삼성전자어드밴텍IDCMDS테크놀로지퓨어스토리지미래창조과학부한국와콤매직 쿼드런트VM웨어실리콘랩스시놀로지지포스내쇼날인스트루먼트지멘스 PLM 소프트웨어마이크로칩테크놀로지리니어SSD스토리지윈드리버빅데이터마이크렐아파치 하둡보안 솔루션텔릿스마트폰타이젠그래픽카드이엠텍오토모티브다스씨스템ETRI마우서캐논프로모션가트너인피니언CSR기가바이트새로텍알테라IoTNXP컴퓨웨어Apacer저전력MCU시스코보고서컨퍼런스웨어러블임베디드인텔코리아애플리케이션한국EMCADI이엠텍아이엔씨SK하이닉스레귤레이터자동차레퍼런스 디자인테라데이타ams미래부WD제이씨현시스템지멘스모던하이테크외장하드KISA안드로이드아크로니스가상화KT안랩포티넷M2M클라우드마이크로칩SaaS맥심LTE맵알CODE V몰렉스HGSTEMCNI하둡한국NI산업통상자원부스미싱MOU인텔애질런트슈퍼솔루션아티슨마이크로스트레티지멘토그래픽스웨이코스블루투스IBM솔루션에이서자일링스블루코트APUFPGA퀀텀젠하이저SK텔레콤세미나리니어 테크놀로지TI온세미컨덕터CANAS조텍코리아아나로그디바이스MOXA보안노르딕마이크로소프트씨게이트프리스케일한국IBMLG전자LightToolsARM에이수스매트랩조텍MDS오라클EWARM사물인터넷SAP엔비디아MS도시바MWCLTE-A임베디드SW키사이트AMDSoC이벤트시뮬링크태블릿LG유플러스에이디링크반도체
회사소개  |  제휴문의  |  온라인 광고  |  지면광고  |  매체소개  |  개인정보취급방침  |  이메일주소 무단수집 거부  |  ⓒ Techworld, Inc.