내보내기(0) 인쇄
모두 확장
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Windows Azure와 함께 Windows Phone 사용

저자: Glenn Gailey

검토자: Matt Stroshane 및 Turker Keskinpala

Windows Azure 플랫폼은 뛰어난 Windows Phone 응용 프로그램을 만드는 데 사용할 수 있는 확장성이 높은 처리 및 저장 기능, 관계형 데이터베이스 서비스 및 고급 데이터 구독을 제공합니다. 이 항목에서는 Windows Azure 플랫폼을 활용하여 Windows Phone 장치에서 뛰어난 환경을 만들기 위한 지침을 제공합니다. Windows Azure 플랫폼과 함께 사용할 수 있도록 Windows Phone을 최적화하기 위한 일반 지침은 다음과 같습니다.

Windows Phone을 지원하는 Windows Azure 서비스

Windows Phone 응용 프로그램에서 Windows Azure 플랫폼을 활용하는 것은 모두 데이터의 소비 및 저장과 관련됩니다. 응용 프로그램의 데이터가 Windows Azure 마켓플레이스와 같은 기존 서비스를 통해 클라우드에 이미 존재할 수도 있습니다. 마켓플레이스는 Open Data Protocol(OData)을 활용하여 데이터의 게시와 소비를 단순화하는 구독 기반 클라우드 서비스입니다. 개발자는 마켓플레이스를 사용하여 고급 데이터 구독을 검색하고, 미리 보고, 구입하고, 관리할 수 있습니다. 자세한 내용은 Windows Azure Marketplace를 참조하십시오.

odata.org 웹 사이트에서도 공개적으로 사용할 수 있는 OData 피드의 목록을 유지 관리합니다. 자세한 내용은 odata.org 웹 사이트의 공급자 페이지를 참조하십시오.

보다 일반적으로, 사용자의 응용 프로그램에서 고객의 시나리오를 지원하는 데 필요한 데이터는 해당 사용자에게 속합니다. 이 데이터를 Windows Phone 응용 프로그램 사용자가 사용할 수 있게 만드는 훌륭한 방법은 Windows Azure 플랫폼을 사용하는 것입니다. Windows Azure Platform Overview for Windows Phone 항목에서는 Windows Azure 플랫폼의 개념과 이 플랫폼을 사용하여 Windows Phone 응용 프로그램의 데이터 요구 사항을 지원하는 방법에 대한 자세한 개요를 제공합니다.

Blob 서비스를 사용하는 경우를 제외하고, Windows Phone 응용 프로그램에서 직접 Windows Azure 저장소 서비스에 액세스하지 않아야 합니다. 이는 클라이언트에 Windows Azure 저장소 서비스 자격 증명을 배포하지 않는 것이 좋기 때문입니다. 클라우드 기반 데이터로 응용 프로그램을 향상시키려면 이러한 다른 Windows Azure 플랫폼 서비스를 이용할 수 있는 Windows Azure 호스팅 서비스를 대신 만들어야 합니다. 따라서 Windows Azure 호스팅 서비스만 저장소 서비스 자격 증명에 대한 액세스가 필요합니다.

Windows Azure에 ASP.NET 웹 역할로 배포된 Windows Azure 호스팅 응용 프로그램 및 서비스를 만들어 고객에게 데이터를 노출합니다. 이러한 응용 프로그램은 WCF(Windows Communication Framework) 응용 프로그램 또는 OData 서비스일 수 있습니다. Windows Azure에서 WCF Data Services를 사용하여 OData 서비스를 만들 수 있습니다. 자세한 내용은 Windows Azure의 OData에 대한 지침를 참조하십시오.

Windows Azure Toolkit for Windows Phone에는 Windows Phone 응용 프로그램에서 소비하기 위한 Windows Azure 기반 서비스를 만드는 데 사용할 수 있는 Visual Studio 프로젝트 템플릿이 포함되어 있습니다.

Azure 기반 서비스에 액세스하는 응용 프로그램 작성

Windows Azure 기반 서비스에 액세스하는 응용 프로그램은 서비스 리소스에 대해 HTTP 요청을 만들고, 응답의 메시지 본문에 있는 데이터를 소비하고, 대개 UI 요소에 바인딩하여 이 데이터를 사용자에게 표시해야 합니다. 자세한 내용은 Networking and Web Services Overview for Windows Phone를 참조하십시오.

Windows Azure Toolkit for Windows Phone에는 이러한 종류의 서비스를 보다 쉽게 소비하기 위해 Windows Phone에서 사용할 수 있는 클라이언트 라이브러리 집합이 포함되어 있습니다.

또한 OData client for Windows Phone를 사용하여 OData 피드를 소비하는 응용 프로그램을 쉽게 작성할 수 있습니다. 자세한 내용은 OData 클라이언트를 사용하여 Windows Azure 데이터 서비스 소비를 참조하십시오.

보안 고려 사항

이 섹션에서는 Windows Azure 호스팅 리소스에 액세스하는 Windows Phone 응용 프로그램을 만들 때 중요한 보안 고려 사항을 다룹니다. 자세한 내용은 Web Service Security for Windows Phone을 참조하십시오.

Windows Azure 서비스에 대한 인증

Windows Phone 응용 프로그램용 Windows Azure 호스팅 서비스를 만들 때 클라이언트가 인증하도록 할지 여부를 선택할 수 있습니다. 인증은 클라이언트가 ID를 증명하도록 하여 서비스에 대한 악의적인 공격을 완화하는 데 도움이 됩니다. 또한 인증을 사용하면 저장된 데이터의 클라이언트 관련 하위 집합에 대한 액세스 권한을 부여할 수 있습니다. 이를 다중 테넌트 응용 프로그램이라고 합니다. Windows Azure에서 다중 테넌트 응용 프로그램을 만드는 데 대한 자세한 지침은 Windows Azure에서 다중 테넌트 응용 프로그램 디자인을 참조하십시오.

Windows Azure 호스팅 서비스에 Windows Phone 응용 프로그램을 인증하기 위해 지원되는 방법은 다음 두 가지입니다.

Windows Azure 액세스 제어 서비스
ACS(액세스 제어 서비스)는 웹 응용 프로그램 및 서비스에 대한 쉬운 인증 방법을 Windows Phone 클라이언트에 제공하는 클라우드 기반 서비스입니다. 사용자 고유의 클라이언트 액세스 목록을 유지 관리해야 하는 대신 Windows Live ID, Google, Yahoo! 또는 Facebook과 같은 신뢰할 수 있는 ID 공급자에 이 작업을 오프로드할 수 있습니다. 자세한 내용은 ACS Overview를 참조하십시오. ACS 서비스를 사용하여 Windows Phone 응용 프로그램에서 OData 피드에 액세스하는 방법에 대한 예를 보려면 OAuth 2.0으로 보호되는 OData 서비스에 연결을 참조하십시오.

ASP.NET 폼 기반 인증
ASP.NET에는 Windows Azure에서 ASP.NET 웹 역할에 대해서도 지원되는 고유한 멤버 자격 공급자가 포함되어 있습니다. 이 멤버 자격 공급자는 ASP.NET 폼 인증에서 요청하는 클라이언트를 인증하는 데 사용됩니다. ASP.NET 폼 기반 인증을 사용하려면 사용자 고유의 클라이언트 액세스 목록을 유지 관리해야 합니다. 자세한 내용은 현실 세계: Windows Azure에 대한 ASP.NET 폼 기반 인증 모델을 참조하십시오.

Windows Azure Toolkit for Windows Phone은 이러한 인증 체계를 둘 다 지원합니다.

Windows Azure를 사용하여 통신 암호화

Windows Azure 호스팅 서비스와 자격 증명을 교환할 때 항상 암호화된 연결을 사용해야 합니다. 또한 응용 프로그램에서 사용자가 개인 데이터로 간주하는 데이터를 보내거나 받을 때마다 암호화된 연결을 사용하는 것이 좋습니다. Windows Azure에서 이 보안은 SSL(Secure Sockets Layer) 또는 TLS(전송 계층 보안) 연결을 사용하여 제공됩니다. 자세한 내용은 Web Service Security for Windows Phone를 참조하십시오.

사용자 자격 증명 보호

자격 증명을 휴대폰에 저장하려는 경우 응용 프로그램에서 필요할 때마다 사용자 이름 및 암호를 묻는 메시지를 사용자에게 표시하는 것이 좋습니다. Windows Phone을 잃어버리거나 도난당하는 경우 해당 자격 증명이 악성 응용 프로그램에 노출될 위험이 있습니다. ProtectedData 클래스와 관련 암호화 클래스를 사용하여 응용 프로그램에서 중요한 정보를 암호화하고 저장하십시오. 자세한 내용은 How to: Encrypt Data in a Windows Phone Application를 참조하십시오.

Windows Phone 응용 프로그램 및 서비스를 최적화하기 위한 지침

다른 컴퓨팅 플랫폼과 비교할 때 Windows Phone과 같은 모바일 장치의 리소스 집합은 훨씬 더 제한적입니다. 모바일 장치의 저장소, 처리 및 배터리 리소스는 랩톱 또는 데스크톱 컴퓨터보다 적을 수 있습니다. 또한 장치 고객도 Windows Azure 기반 응용 프로그램 및 서비스와 같은 외부 리소스에 액세스하기 위해 대역폭에 대해 지불하는 경우가 많습니다. 클라우드 기반 응용 프로그램 및 서비스를 소비하는 Windows Phone 응용 프로그램을 개발할 때 이러한 제약 조건을 명심해야 합니다. 네트워크 대역폭은 모바일 장치에 대한 기본 리소스 제약 조건입니다. 많은 모바일 네트워크는 장치에 다운로드하거나 장치에서 업로드된 데이터의 양에 대해 사용자에게 요금을 부과합니다. 고객은 응용 프로그램을 실행할 때 사용 중인 대역폭의 크기를 분별하지 못할 수도 있습니다. 응용 프로그램으로 인해 월별 휴대폰 청구서의 청구 요금이 크게 증가하는 경우 응용 프로그램의 사용과 전체적인 인기도가 확실히 줄어들 것입니다. 또한 Windows Phone 플랫폼은 응용 프로그램이 사용할 수 있는 격리된 저장소의 크기를 제한하며, 응용 프로그램은 너무 많은 메모리를 사용하는 경우 인증에 실패할 수 있습니다.

응용 프로그램 시나리오와 고객 요구에 따라 다양한 요인을 최적화하기 위한 권장 사항은 다음과 같습니다.

신뢰할 수 있게 로컬 저장소 사용

가능하면 Windows Phone 응용 프로그램에 필요한 데이터(클라우드에서 제공되는 데이터도 포함)를 로컬 장치에 저장합니다. 이는 조회 테이블과 같은 참조 데이터, 응용 프로그램이 처음 시작될 때 필요한 데이터 또는 고객의 응용 프로그램 환경을 개선하는 모든 데이터의 경우 특히 중요합니다. 자세한 내용은 Windows Azure와 모바일 클라이언트 간의 데이터 동기화를 참조하십시오.

구현
올바르게 실행되거나 보다 효율적으로 시작되기 위해 응용 프로그램에 필요한 클라우드의 데이터를 로컬 장치에 저장하는 것이 좋습니다. 로컬 데이터베이스나 격리된 저장소를 사용하여 이 데이터를 저장할 수 있습니다. 자세한 내용은 Local Data Storage for Windows Phone를 참조하십시오.

OData 피드의 데이터를 로컬 데이터베이스에 저장하는 방법의 예를 보려면 Windows Phone에서 로컬 저장소와 OData 동기화 시리즈를 참조하십시오.

Windows Phone이 장치에 저장소 제한을 적용하지 않기 때문에 사용할 저장소 크기에 대한 책임은 응용 프로그램에 있습니다. AvailableFreeSpace를 확인하여 장치의 저장소 수준을 인식하고 응용 프로그램이 자체적으로 적용한 적절한 제한을 초과하는 경우 데이터 저장을 중지하도록 준비합니다. 또한 고객에게 저장된 데이터를 수동으로 지우는 방법도 제공하는 것이 좋습니다.

장단점
클라우드 기반 저장소의 장점 중 하나는 어디에 있든 간에 데이터를 어느 장치에서나 사용할 수 있다는 것입니다. 응용 프로그램 데이터를 로컬로 저장하면 응용 프로그램 성능이 향상될 수 있지만 로컬로 저장된 데이터는 Windows Phone 응용 프로그램 외부에서 사용할 수 없습니다. 즉, 고객이 장치를 잃어버리거나 장치가 손상되는 경우 데이터를 복구할 수 없습니다. 또한 이 동일한 데이터를 장치나 컴퓨터에서 고객이 사용 할 수 있게 만들 수도 있습니다. OData 기반 동기화 서비스를 사용하여 장치와 클라우드 둘 다에 있는 중요한 고객 데이터를 유지 관리하는 것이 좋습니다. 자세한 내용은 Sync Framework Toolkit을 사용하여 Windows Azure 서비스와 Windows Phone 데이터 동기화 게시물을 참조하십시오.

연결 확인

인터넷 연결 없이 올바르게 실행되지 못하면 Windows Phone 응용 프로그램이 인증에 실패할 수 있습니다. 클라우드 기반 서비스에 요청을 하기 전에 인터넷 연결을 확인해야 합니다. 또한 대부분의 사용자가 설정된 제한을 초과한 모바일 네트워크 대역폭에 대해 지불하기 때문에 모바일 네트워크보다는 Wi-Fi 연결을 통해 백그라운드 데이터 동기화 작업을 실행해야 합니다. 사용자가 백그라운드 동기화 작업을 비활성화하거나 Wi-Fi 전용으로 만들 수 있게 할 수도 있습니다.

구현
GetIsNetworkAvailable 메서드를 호출하여 인터넷 연결을 확인할 수 있습니다. 셀룰러든 Wi-Fi든 간에 GetCurrentNetworkInterface 메서드를 호출하여 연결의 유형을 확인할 수도 있습니다. 자세한 내용은 How to: Get Connection Information about a Socket for Windows Phone를 참조하십시오.

장단점
사용자가 특정 네트워크 연결이나 백그라운드 작업에 대한 액세스를 비활성화하는 경우 응용 프로그램의 성능이나 기능에 영향을 미칠 수도 있습니다.

데이터 교환에 JSON 사용

일부 데이터 교환 형식은 기본적으로 다른 데이터 교환 형식보다 간단하고 효율적입니다. 대역폭이 주요 관심사인 경우 JSON 프로토콜을 지원하는 Windows Azure 서비스만 만들거나 사용합니다. 이는 JSON 데이터 형식이 기본적으로 XML 기반 형식보다 효율적이기 때문입니다.

구현
JSON을 지원하는 서비스를 사용해 보십시오. OData 서비스는 기본 Atom XML 형식 외에도 JSON 형식을 지원합니다. OData 서비스에서 JSON 응답을 얻으려면 Accept 요청 헤더로 application/json의 값을 제공합니다. 데이터 서비스 요청의 URI에서 $format=json의 쿼리 옵션도 지정할 수 있지만 WCF Data Services는 기본적으로 $format 쿼리 옵션을 지원하지 않습니다. 자세한 내용은 OData 서비스를 활용하기 위한 최상의 방법을 참조하십시오. WCF REST도 JSON 형식을 지원합니다.

OData client for Windows Phone를 사용하여 Atom XML에 제공되는 클라이언트 라이브러리 지원과 동등한 지원이 JSON의 경우에는 없습니다. 그러나 장치에서 DataContractJsonSerializer 클래스를 사용하여 데이터 계약을 기반으로 JSON 응답을 클라이언트에서 개체로 직렬화할 수 있습니다. 자세한 내용은 JSON에 대한 스키마 유추 게시물을 참조하십시오.

장단점
OData client for Windows Phone를 사용하여 OData 서비스와 쉽게 상호 작용할 수 있습니다. 그러나 이 클라이언트 라이브러리는 현재 Atom XML 형식만 지원합니다. OData 클라이언트 라이브러리 사용의 간편함을 활용하려면 JSON의 경우보다 XML 기반 형식의 경우 보다 효율적인 압축을 사용하는 것이 좋습니다.

압축 사용

gzip과 같은 압축 체계를 채택하여 네트워크 대역폭 요구 사항을 줄일 수 있습니다. 압축 사용은 Atom과 같은 XML 기반 형식을 사용할 때보다 훨씬 중요합니다. Atom XML 형식만 지원하는 OData client for Windows Phone를 사용할 때 네트워크 요구 사항을 줄이기 위해 압축을 사용하는 것을 고려해야 합니다.

구현
서버에서 압축을 사용하도록 설정하고 서비스(예: 응용 프로그램/JSON 또는 응용 프로그램/Atom+XML)의 응답에 대한 MIME 형식에 대해 압축이 구성되어 있는지 확인합니다. 자세한 내용은 Windows Azure의 IIS 압축 게시물을 참조하십시오. 웹 서버에서 압축된 응답을 요청하려면 gzip과 같은 지원되는 압축 체계에 대한 요청에서 Accept-Encoding 헤더를 설정합니다. Windows Phone에는 현재 고유한 압축 라이브러리가 없으므로 SharpCompress와 같은 타사 압축 라이브러리를 사용해야 합니다. Windows Phone의 OData 라이브러리를 사용하여 압축을 요청하도록 헤더를 설정할 수 있습니다. 또한 압축된 응답 스트림에 액세스하고 라이브러리에서 개체로 구체화할 수 있도록 압축이 풀린 응답을 반환하는 API도 제공합니다. OData client for Windows Phone를 통해 압축을 사용하는 방법에 대한 예를 보려면 Windows Phone 7.5(Mango)를 사용한 OData 압축 문서를 참조하십시오.

장단점
압축을 통해 네트워크 대역폭이 절약되지만 서비스와 장치에서 성능이 저하됩니다. 다행히 Windows Azure에서는 호스팅된 서비스를 확장하여 용량 요구를 충족할 수 있습니다. 호스팅된 서비스의 일부로 실행되는 역할 인스턴스의 수를 늘리거나 줄여 이 작업을 수행할 수 있습니다. 그러나 실행 중인 역할 인스턴스의 수를 늘리면 요금이 부과되는 계산 시간이 증가합니다. 자세한 내용은 How to Scale Applications by Increasing or Decreasing the Number of Role Instances를 참조하십시오.

압축과 압축 해제를 수행하면 Windows Phone 장치에서 처리 리소스도 소비됩니다. 이러한 추가 처리는 장치의 배터리 수명에 부정적인 영향을 미칠 수 있습니다.

결론

장치와 모바일 응용 프로그램은 클라우드 기반 플랫폼의 장점을 뚜렷하게 드러내 줍니다. Windows Azure 플랫폼과 Windows Phone은 Windows Phone 응용 프로그램의 고객에게 융통성과 성능을 제공할 수 있도록 엔지니어링되었습니다. 이제 좋은 아이디어를 내고 훌륭한 응용 프로그램을 디자인하고 고객에게 유용한 데이터를 제공하는 것은 사용자의 몫입니다.

Window Phone에 대한 자세한 내용은 AppHub 포털 페이지를 참조하십시오.

Windows Azure 플랫폼에 대한 자세한 내용은 Windows Azure 포털 페이지를 참조하십시오.


빌드 날짜:

2013-10-23
이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft. All rights reserved.