Windows Azure Mobile Services로 구현하는 "클라우드 지원 앱
Windows 스토어에서 제공되는 뛰어난 앱들은 연결된 경험을 기반으로 합니다. 이러한 앱은 라이브 타일을 사용하고, SSO(Single Sign-On)를 통해 사용자를 인증하며, 장치와 사용자 간에 데이터를 공유합니다. 이 모든 연결을 최대한 활용하려면 앱에서 클라우드 서비스를 사용해야 합니다.
하지만 클라우드 서비스를 구축하는 것은 쉬운 일이 아닙니다. 대부분의 클라우드 플랫폼은 데이터를 저장하고 코드를 실행하는 일반적인 기능을 제공하지만 이러한 기능을 통합하려면 인프라 코드 영역을 작성해야 합니다. 이는 개발자들이 감당하기에는 결코 쉽지 않은 문제이며, 그렇다고 백 엔드 인프라 코드를 최우선 과제로 삼을 수도 없는 노릇입니다. 게다가 개발자들은 아이디어를 앱으로 현실화하는 데만 집중하기를 원합니다.
Microsoft는 이러한 어려움을 해결하기 위한 노력의 일환으로, 지난주에 Windows Azure의 새로운 서비스인 Mobile Services에 대한 프리뷰를 발표했습니다. 이에 따라, Mobile Services를 사용하여 앱에 필요한 클라우드 서비스를 단 몇 분만에 추가할 수 있게 되었으며, 이 글을 통해 그 방법을 보여 드리겠습니다.
시작하려면 Windows Azure 무료 평가판에 등록해야 하며, 등록 후에는 10가지 Mobile Service가 무료로 제공됩니다. 이제 그 중 하나를 사용하여 간단한 할 일 목록 앱을 만들어 보겠습니다.
새 Mobile Service 만들기
무료 평가판에 등록한 후에 https://manage.windowsazure.com으로 이동하여 Microsoft 계정으로 로그인합니다. 탐색 창 아래에 있는 [+NEW(+새로 만들기)] 단추를 클릭하여 새 Mobile Service를 만듭니다.
[Mobile Service]를 선택하고 [만들기]를 클릭합니다. 그러면 다음과 같은 화면이 표시됩니다.
그림 1. 관리 포털에서 구역 만들기
[New Mobile Service] 마법사에서 앱 이름을 입력합니다. 그러면 새 서비스의 URL 일부를 구성할 수 있습니다.
그림 2. [Create Mobile Service] 마법사(첫 번째 화면)
Windows Azure Mobile Service를 만들면 Windows Azure 내의 SQL 데이터베이스와 자동으로 연결됩니다. 그런 다음 Windows Azure Mobile Service 백 엔드에서 사용자 지정 서버 코드를 작성하거나 배포하지 않고도 원격 앱에서 데이터를 안전하게 저장하고 검색할 수 있도록 기본적인 지원을 제공합니다. 새 데이터베이스의 이름을 입력한 다음 새 SQL Server에 대한 로그인 이름 및 암호를 입력합니다. 이 데이터베이스 서버를 다른 Mobile Service에 재사용하려면 이러한 자격 증명을 기억해 두어야 합니다. 90일 무료 평가판에 등록하면 1GB 데이터베이스 하나가 무료로 제공됩니다.
그림 3. [Create Mobile Service] 마법사(두 번째 화면)
틱 단추를 클릭하여 프로세스를 완료합니다. 몇 초 만에 Mobile Service를 만들었습니다. 이 백 엔드를 사용하여 데이터를 저장하고, 푸시 알림을 보내고, 사용자를 인증할 수 있습니다. 이제 앱에서 직접 확인해 보겠습니다.
새 Windows 스토어 앱 만들기
새로 만든 Mobile Service의 이름을 클릭합니다.
그림 4. 새로 만든 Mobile Service
이제 새 앱을 만들거나 기존 앱을 Mobile Service에 연결하는 두 가지 옵션 중에서 선택할 수 있습니다. 첫 번째 옵션을 선택하여 SQL 데이터베이스에 할 일 항목을 저장하는 간단한 할 일 목록을 만들어 보겠습니다. 다음 화면의 단계에 따라 진행합니다.
그림 5. Mobile Services 앱 만들기
아직 설치하지 않은 경우 Visual Studio 2012 및 Mobile Services SDK를 설치합니다.
할 일 목록을 저장하려면 테이블을 만들어야 합니다. 테이블의 스키마를 미리 정의할 필요는 없습니다. Mobile Services에서 데이터를 저장하는 데 필요한 열을 자동으로 추가해 주기 때문입니다.
이제 선호하는 언어(C# 또는 JavaScript)를 선택하고 [다운로드]를 클릭합니다. 그러면 새 Mobile Service에 연결하도록 미리 구성되어 있는 개인 설정된 프로젝트가 다운로드됩니다. 압축된 프로젝트 파일을 로컬 컴퓨터에 저장합니다.
압축된 프로젝트 파일을 저장한 위치로 이동하여 컴퓨터에서 파일을 확장하고 Visual Studio 2012 Express for Windows 8에서 솔루션을 엽니다.
F5 키를 눌러 앱을 시작합니다.
앱에서 왼쪽의 텍스트 상자에 할 일 목록을 입력하고 [저장]을 클릭합니다. 그러면 Windows Azure에서 호스팅되는 새 Mobile Service로 HTTP 요청이 전송됩니다. 그런 다음 이 데이터는 TodoItem 테이블에 안전하게 저장됩니다. Mobile Service에서 확인 메시지를 받으면 데이터가 오른쪽의 목록에 표시됩니다.
Figure 6. 완료된 앱
이제 데이터를 저장하는 앱 내의 코드에 대해 살펴보겠습니다. 할 일 목록 앱을 중지하고 App.xaml.cs를 두 번 클릭합니다. 그리고 다음 줄의 내용을 확인합니다.
public static MobileServiceClient MobileService = new MobileServiceClient( "https://todolist.azure-mobile.net/", "xPwJLJqYTMsAiBsHBHDhDEamZdtUGw75" );
이 코드만 있으면 앱을 Mobile Service에 연결할 수 있습니다. 기존 앱을 Mobile Service에 연결하려면 [Connect your existing app(기존 앱에 연결)] 빠른 시작 옵션에서 이 코드를 복사하면 됩니다. 이제 MainPage.xaml.cs를 열고 Mobile Service에 데이터를 삽입하는 다음 줄을 살펴봅니다.
private IMobileServiceTable<TodoItem> todoTable = App.MobileService.GetTable<TodoItem>(); private async void InsertTodoItem(TodoItem todoItem) { await todoTable.InsertAsync(todoItem); items.Add(todoItem); }
이 코드만 있으면 데이터가 클라우드 백 엔드에 저장됩니다. 다음은 이에 해당되는 JavaScript의 코드입니다.
var client = new Microsoft.WindowsAzure.MobileServices.MobileServiceClient( "https://todolist.azure-mobile.net/", "xPwJLJqYTMsAiBsHBHDhDEamZdtUGw75" ); var todoTable = client.getTable('TodoItem'); var insertTodoItem = function (todoItem) { todoTable.insert(todoItem).done(function (item) { todoItems.push(item); }); };
Mobile Service 관리 및 모니터링
Windows Azure Management Portal로 돌아가 [대시보드] 탭을 클릭하여 새 Mobile Service에 대한 실시간 모니터링 및 사용 정보를 확인합니다.
그림 7. Mobile Services 대시보드
[데이터] 탭을 클릭한 다음 [TodoItems] 테이블을 클릭합니다.
그림 8. [데이터] 탭
여기서 테이블에 삽입된 데이터를 찾아볼 수 있습니다.
그림 9. 데이터 찾아보기
결론
지금까지 복잡한 백 엔드 프로젝트를 작성, 관리 및 배포할 필요 없이 Windows Azure의 기능을 앱에 추가하는 간단한 방법에 대해 알아보았습니다. 여기서 살펴본 내용은 Mobile Services를 사용하여 수행할 수 있는 작업을 극히 일부분만 소개한 것입니다. 앞으로 다음 주제에 대해서도 살펴볼 예정입니다.
- Mobile Services 및 Microsoft 계정을 통한 사용자 인증
- 서버에서 안전하게 실행되는 스크립트를 통한 데이터 액세스 유효성 확인 및 권한 부여
- 몇 줄의 코드만으로 알림 메시지 보내기 및 라이브 타일 업데이트
Mobile Services에 대한 자세한 내용은 https://www.windowsazure.com/mobile을 참조하세요.
- Windows Azure 수석 프로그램 관리자, Kirill Gavrylyuk