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월호
[관련기사]
프리스케일, 최소형 통합 타이어 압력 모니터링 시스템(TPMS) 공개 (2014-10-27)
마이크로소프트, 차세대 클라우드 전략 발표 (2014-10-27)
새로텍, MLC 타입 mSATA 탑재 ‘초소형 외장 SSD' 출시 (2014-10-22)
글로벌 기업 '모바일 헬스케어 시장' 생태계 구축 활발, 이유는?? (2014-10-22)
한국MS, 접이식 저전력 블루투스 마우스 출시 (2014-10-22)
MS, 국내 직장인 디바이스 사용 현황 조사 발표 (2014-10-20)
VM웨어, 클라우드 산업 비전 제시 ‘VMware vForum 2014’ 개최 (2014-10-16)
IBM·SAP, 엔터프라이즈 클라우드 관련 전략적 협력 나선다 (2014-10-15)
실리콘랩스, ‘CMEMS 기술’ 기반 PCI 익스프레스 클럭 IC 출시 (2014-10-15)
퀵로직, 센서 허브 플랫폼용 QVL 프로그램 공개 (2014-10-14)
최근 많이 본 기사
한국EMC, ‘스케일 아웃’ 기...
LG유플러스, 고객 대상 기존...
델, 태블릿과 울트라북을 하...
KT, 르완다 정상과 아프리카...
SSD (Solid-State Drive) 컨...
아티슨, 열차 제어·신호 ‘...
TI, DSP와 비전 프로세싱 강...
리니어, 2A 동기식 스텝다운...
부트로더(boot loader)
IAR EWARM 기본편: 구조 및...
과월호 보기:
Tag Cloud
에이서도시바인수웨어러블맥심아나로그디바이스테라데이타ADAS프리스케일안드로이드ADC네트워크조텍IoESDN시놀로지인사퀀텀태블릿MOXA어드밴텍블루투스보조배터리한국EMC폴리콤유라클MCU세미나MDSUSB 3.0태블릿PCM2MST포티넷LG전자아날로그디바이스저전력애질런트RTOS기가바이트내쇼날인스트루먼트스마트폰MDS테크놀로지사물인터넷TI삼성전자타이젠만물인터넷아파치 하둡키사이트매스웍스CSR한국NI보안프로모션TIZEN보안 솔루션MS자일링스퓨어스토리지노르딕HPC인피니언매트랩EMC지멘스VM웨어IOT안랩ams인텔IDC보고서가트너구글외장하드KISA제이씨현시스템EWARM한국IBM보다폰젠하이저NAS미래부텔릿VIA그래픽카드시뮬링크조텍코리아오실로스코프스토리지임베디드 소프트웨어 경진대회윈드리버DC/DCSaaS웨스턴디지털마이크로스트레티지커넥티드엔비디아이엠텍IAR임베디드SW한국MS모피어스실리콘랩스아태지역와콤NXP블루코트엑시스오라클컴퓨웨어GCN 아키텍처LG유플러스애플리케이션마이크렐르크로이다쏘시스템APU레퍼런스 디자인MOU5G오토모티브자동화AMD솔루션엔터프라이즈아크로니스알테라CA멘토그래픽스맵알3SSFPGAADIST마이크로일렉트로닉스클라우드레귤레이터빅데이터SoC가상화동기식GPU협약지포스웨이코스LTE인포테인먼트인텔코리아컨퍼런스에이디링크리니어모던하이테크에이수스통합 솔루션SNSSK텔레콤이벤트마이크로칩매직 쿼드런트몰렉스스토리지 솔루션IBM한국와콤HP캐논아티슨LTE-A마이크로소프트시냅틱스시스코반도체마우서임베디드모바일STM32WDSKTARM하둡씨게이트KTMWC리버베드SAPSSD새로텍SK하이닉스

회사소개  |  제휴문의  |  온라인 광고  |  지면광고  |  매체소개  |  개인정보취급방침  |  이메일주소 무단수집 거부  |  ⓒ Techworld, Inc.