본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

모바일 클라우드 컴퓨팅 앱 개발 ‘기본 정보 총정리’

OSS 게시글 작성 시각 2012-09-03 15:34:29 게시글 조회수 6059

2012년 08월 30일 (목)

ⓒ ITWorld, Bill Claybrook | Computerworld



기업의 모바일 근로자(Mobile Workforce)와 함께 모바일 앱이 맹렬한 기세로 확장되고 있다. 새로운 모바일 사용자들은 또 데스크톱에서 얻고 있는 소프트웨어 경험에 필적하는 소프트웨어 경험을 기대하고 있다. 무엇을, 어떻게 해야 할까?

많은 기업에 있어서 프라이빗 클라우드가 그 해답이다. 하지만 모바일 근로자를 지원하는 툴로써 프라이빗 클라우드(Private Cloud)를 활용하기로 결정했다면 이런 인프라를 염두에 두고 모바일 애플리케이션을 개발해야 한다.

모든 모바일 기기, 데스크톱, 노트북에서 사용할 수 있는 애플리케이션을 원한다면 다양한 요소들을 감안해야 한다.

앱을 원격으로 클라우드에서 구동할 때, 기존의 애플리케이션을 모바일 기기에서 사용하려면 무엇이 필요한가? 데스크톱용으로 설계된 애플리케이션의 데이터를 크기가 더 작은 모바일 기기의 화면에 맞추는 문제는 어떻게 해결할까? 모바일 기기용으로 먼저 개발하여 노트북으로 이식해야만 하는 걸까?

컴퓨터 시스템 연구 컨설팅기업 아이디어스 인터내셔널(Ideas International Ltd.)의 수석 부사장 토니 이암은 코드 그리고/또는 데이터 자체 등 애플리케이션의 스테이트(State) 중 어떤 부분을 모바일 기기에서 클라우드로 옮길지 결정하는 것이 중요하다고 조언했다.

그는 "클라우드로 스테이트를 옮겨가게 되면 백엔드(Back-End) 관리 측면에서 장점이 있다. 왜냐하면 그렇게 할 경우, 해당 스테이트를 모바일 기기에서 유지할 필요가 없어지기 때문이다"라고 말했다. 다시 말해서, 모든 변경사항 또는 애플리케이션 업데이트는 중앙에서 관리한다는 것이다..

모바일 클라우드 컴퓨팅이란, 애플리케이션의 처리, 데이터의 저장, 검색 등이 클라우드 기반의 인프라를 통해 수행됨을 뜻한다. 이는 TCO 절감으로 귀결된다. 왜냐하면 IT 직원들은 개별적인 기기의 업데이트를 위해 시간을 소요할 필요가 없으며 클라이언트 소프트웨어 환경은 클라우드의 서버에서 구동되고 서버에서 변경된 사항이 모든 클라이언트에도 그대로 적용되기 때문이다.

사용자의 관점에서도 편의성이 증진된다. 왜냐하면 사용자는 자신의 위치에 상관없이 모바일 기기의 브라우저를 이용해 가상 데스크톱에 접속할 수 있기 때문이다. 이암은 "어떤 원격기기를 사용하던지 동일한 데스크톱 환경을 사용할 수 있다는 것"이라고 말했다.

이 때, 사용자와 기기의 유형이 다양하기 때문에 다양한 버전의 앱을 지원할 수 있는 준비가 갖춰져야 한다. 이는 상이한 화면 크기와 모바일 기기 제조사를 지원할 준비가 되어야 한다는 의미다.


MEAP 모바일 플랫폼
버라이존 비즈니스(Verizon Business)의 기업 전략 책임자 제프 디콘은 이럴 때 모바일 플랫폼이 도움이 된다고 설명했다. 그의 설명에서 모바일 플랫폼이란 모바일 기기와 앱/데이터 사이의 소프트웨어를 의미한다.

모바일 플랫폼은 모바일 클라우드에서 구동하며 데이터를 해당 기기에 적합한 사용자 친화적인 인터페이스(Interface)로 변환하고 모든 것이 화면에 잘 들어맞도록 하는 등 모바일 기기에 특화된 일부 기능을 제공하게 된다.

또한 기기의 모든 부분을 제어할 수 있는 인증 메커니즘을 갖고 있기 때문에 기기를 분실하거나 도난 당할 경우, 원격으로 삭제하는 작업도 구현해준다.

이 때 기업의 백오피스(Back-Office) 애플리케이션은 모바일 플랫폼을 이용해 승인되지 않은 사용자가 멀티프로토콜 레이블 스위칭(Multiprotocol Label Switching)을 통해 애플리케이션에 접근하지 못하도록 방지하게 된다. 즉 플랫폼은 모바일 기기를 보호하면서 변환을 수행한다.

이런 모바일 플랫폼은 MEAP(Mobile Enterprise Application Platform)이라 불린다. 이런 모바일 플랫폼을 이용하면 특정 기기를 위해 앱을 개발할 필요 없이 다양한 기기에서 모바일 앱을 배치할 수 있다.

또한 핵심적인 원격 기기의 기능을 사용해야 하거나 모바일 클라우드 서버에서 네이티브(Native) 기능을 에뮬레이션하기 어려울 때, 특정 애플리케이션을 원격 기기에서 네이티브 상태로 구동할 수도 있다.
 
시장도 이런 방향으로 발전하고 있지만, MEAP는 아직 초기 도입 단계에 머무르고 있으며, 대부분의 기업들은 정책상 이런 기술에 쉽게 접근하지 못하고 있다.

디콘은 버라이존(Verizon)이 멀티테넌트(Multitenant) 시스템인 SUP(Sybase Unwired Platform)을 사용해 다양한 모바일 기기 및 기업용 백엔드 서버에서 모바일 앱 개발 및 배치의 복잡성을 낮추고 있다고 전했다.

MEAP 또는 MEAP와 유사한 플랫폼으로는 웹모비(WebMobi), 안테나 소프트웨어(Antenna Software)의 AMP크로마(AMPchroma), 사이클로 LLC(Syclo LLC)의 에이전트리 모바일 플랫폼(Agentry Mobile Platform), 앱셀러레이터 티타늄(Appcelerator Titanium) 등이 있다.


기타 개발 기법
모바일 앱은 특정 기기에 네이티브 상태로 배치되거나 브라우저를 통해 접속(일명 모바일 웹 앱)하는 등의 2가지 형태를 띠게 된다. 모바일 웹 앱은 일반적으로 HTML(요즘은 HTML5을 사용), CSS(Cascading Style Sheets), 자바스크립트(JavaScript) 등을 사용하여 개발된다. 스타일 시트(Style Sheet)는 HTML5 등 마크업 언어(Markup Language)로 작성된 문서의 스타일과 양식을 제공한다.

네이티브 모바일 앱은 특정 기기와 그 운영체제에 맞추어 개발된다. 이런 앱은 GPS, 나침반, 가속도계, 자이로스코프(Gyroscope) 등의 내장된 기능을 사용할 수 있다.

반면 모바일 클라우드의 서버에서 구동하는 모바일 웹 앱은 이런 위치 기능을 항상 사용할 수 있는 것이 아니며, 필요한 경우, 에뮬레이션을 동원하게 된다.

더 샌드 힐 그룹(The Sand Hill Group)의 카메시 페마라주 애널리스트는 MEAP 외에 하이브리드 및 HTML5 기반의 솔루션도 크로스플랫폼(Cross-platform) 기능을 활용한 모바일 애플리케이션 개발을 위해 등장하고 있다고 전했다.

하이브리드 애플리케이션 개발은 네이티브 및 모바일 웹 앱 접근방식을 혼합적으로 사용하는 방식이다. 하이브리드 모바일 앱을 통해 대부분의 사용자 환경(User Interface) 또는 전체 사용자 환경이 브라우저 창 안에서 구현되며, 이 때 구동되는 네이티브 앱은 브라우저에서는 사용할 수 없는 기기의 네이티브 기능을 제공할 수 있다.

사용자에게 있어서 하이브리드 앱은 네이티브 앱처럼 느껴진다. 하지만 개발자 입장에서는 이 둘이 큰 차이를 보인다. 각 모바일 기기를 위해 전체 모바일 앱을 다시 개발하기 보다는 일부 코드를 HTML5, CSS, 자바스크립트 등으로 작성하고 여러 기기에서 재사용하게 되기 때문이다.
 

HTML5가 모바일 앱에 중요한 이유
HTML5는 시맨틱 태그(Semantic Tag), CSS3, 규칙, 특성, 자바스크립트 API로 구성된 일련의 기술 집합체다.

HTML5 는 머리말, 꼬리말, 삽화 등의 특정 문서 구조에 태그를 추가한다. 그 결과, 브라우저가 특정 기기를 위한 플러그인(Plug-in) 없이도 다양한 유형의 콘텐츠를 자체적인 기능만으로 표시할 수 있다. 다시 말해서, HTML5는 원격기기 기능을 지원하여 네이티브 모바일 앱에 더욱 가까운 경험을 제공하게 해준다.

데스크톱 컴퓨터, 스마트폰, 태블릿에서 사용하는 주요 브라우저의 최신 버전들은 HTML5를 부분적으로 지원하고 있지만, 아직까지 모든 주요 브라우저가 HTML5의 모든 기능을 지원하는 것은 아니다. 개발자는 HTML5를 통해 한 번 작성한 코드를 다양한 플랫폼에 적용할 수 있다.

CSS3 의 경우, 다양한 폼 팩터에서 자동 페이지 레이아웃 조정을 지원한다. HTML5 기반의 앱은 동적 레이아웃 렌더링(Dynamic Layout Rendering)을 통해 상이한 크기의 화면이 탑재된 기기에서 구동할 수 있으며, 이는 HTML5 코드가 모바일 앱에서 프레젠테이션을 위해 사용됨을 뜻한다.
 
HTML5는 원격 기기의 특성을 발견하고 CSS3를 통해 원격 기기의 디스플레이 크기와 해상도에 맞도록 자동으로 조정된 정보를 제공한다. HTML5는 CSS3 미디어 쿼리(Media Query)를 사용하여 원격 기기의 화면 크기, 방향, 높이 등에 대응하는 응답형 웹 페이지를 생성한다.
 
결과적으로, 개발자들은 CSS3 미디어 쿼리를 갖춘 HTML5를 통해 다양한 기기에서 구동할 때, 원격 기기의 특성에 자동으로 응답하여 콘텐츠를 적절한 형태로 해당 기기에 제공할 수 있는 웹 앱을 개발할 수 있다.


느린 속도와 접속 문제 해결
버라이존의 디콘은 모바일 기기가 클라우드의 애플리케이션에 접근할 때 레이턴시(Latency) 및 간헐적인 접속 문제가 발생할 수 있지만 일반적으로 현장에서 사용하는 비즈니스 애플리케이션에서는 이런 문제가 많이 발생하지 않고 있다고 말했다.

레이턴시 문제가 발생하는 애플리케이션은 음성과 영상을 포함하는 경우가 많으며, 기업 환경에서 보다 흔하게 사용하는 이메일이나 쿼리(Query) 데이터베이스에서는 이런 문제를 찾아보기 어렵다.

디콘은 "레이턴시와 간헐적인 접속 문제가 발생하기는 하지만 대부분의 사용자들에게는 큰 문제가 되지 않는다"라고 말했다.

 에리 인슈어런스(Erie Insurance)의 IT 담당 수석 부사장 겸 CIO 에릭 밀러는 손해사정관들이 주로 사용하는 모바일 애플리케이션에서 일부 간헐적인 문제가 발견되고 있다고 전했다.

한 애플리케이션은 현장에서 정보를 수집하고 해당 데이터를 저장했다가 인터넷에 연결되었을 때 해당 정보를 전달하기 때문에 매끄럽게 동작하지 못했다는 설명이다. 밀러는 "뛰어난 기능도 중요하지만 연결되었을 때 원활한 상호 연결성이 확보되어야 한다"라고 말했다.
 
HTML5는 온디바이스 캐싱(On-device Caching)이라는 기술을 이용해 간헐적인 접속 문제를 해결하는데 도움을 줄 수 있다. 이 기능은 추가적인 처리를 위해 데이터를 원격 기기에 오프라인 상태로 저장함으로써 모바일 연결성 장애 및 비연속적인 사용자 환경문제를 감소시킨다.

결과적으로 온디바이스 캐싱은 원격 기기와 모바일 클라우드 서버 사이의 통신이 줄어듦을 뜻하기 때문에 모바일 연결성이 비연속적인 상황에서도 앱이 모바일 기기에서 효과적으로 구동할 수 있다.

온디바이스 캐싱 사용의 가장 대표적인 예가 안드로이드(Android)용 구글 맵스(Maps)이다. 이 앱은 지도 데이터를 사용자가 가장 자주 접속하는 지역에서 원격 기기에 미리 로드(Load)하여 위성 신호가 끊기더라도 사용의 연속성을 확보한다.

한편 이는 대부분의 신형 스마트폰에 HTML5를 지원하는 브라우저가 탑재된 이유이기도 하다.


이 모든 것을 백엔드로 처리
일반적으로 말해, 기업 클라우드들은 모바일 애플리케이션을 처리할 수 있다고 컨설팅 기업 하이퍼스트라투스(HyperStratus)의 CEO 버나드 골든은 말했다. 이미 가상화(Virtualization)와 자동화를 지원하는 일종의 클라우드 기반 인프라를 확보하고 있다면 모바일 서비스를 처리하기 위한 계정관리 등의 서비스를 어렵지 않게 추가할 수 있다는 설명이다.

그는 “IAM(Identity Access Management) 등 핵심 서비스의 확대를 IT 전략에 포함시켜야 기기에서 구동하는 모든 애플리케이션이 해당 서비스를 사용할 수 있다”라며, “사실, 기기의 폼팩터에 상관없이 애플리케이션이 호출할 수 있는 API를 개발해야 한다"라고 말했다. 이를 위해서는 내부 및 써드파티(Third-party) 모바일 개발자들 앱 개발에 사용할 수 있도록 API가 모바일을 지원해야 한다.
 
골든은 이어 그 목적이 아이패드를 위한 맞춤식 확장기능을 개발해야 한다는 식의 전략과는 사뭇 다르다며, "아이패드는 하나의 기기에 불과하다. 기기의 종류는 다양하기 때문에 포팅(Porting)이 가능한 애플리케이션 API와 구성요소가 필요하다"라고 말했다.
 
그에 따르면 레이어 7 테크놀로지스(Layer 7 Technologies), 에이피지(Apigee), 에이파이어리(Apiary) 등 서비스형 API 벤더들의 API 관리툴이 도움이 될 수 있다. 이런 툴은 모바일 클라우드에서 사용할 수 있다.

한편 일부 고객들은 이 문제에 대해 새로운 접근방식을 취하고 있다. 예를 들어, 모호크 파인 페이퍼스(Mohawk Fine Papers)는 클라우드 자체를 통합 플랫폼으로 활용하고 있다.

모바일 개발 아웃소싱
부동산 투자 서비스 마커스 & 밀리찹(Marcus & Millichap)의 CIO 리차드 펠츠는 자신이 속한 기업이 자체적인 모바일 앱을 개발하지 않는다며, 지금까지 이런 작업을 전문지식을 갖춘 AT&T에 아웃소싱하고 있다고 말했다.
 
펠츠는 또 앞으로 다양한 기업들이 포탈(Portal), 프라이빗 또는 퍼블릿 클라우드 등 사용자가 적절한 사용자 정보로 앱에 접근할 수 있는 곳을 통해 맞춤형 앱을 제공할 것이며, 이런 앱들은 모바일 기기를 포함한 다양한 기기에서 자동으로 제공될 것이라고 전망했다.

마커스 & 밀찹은 현재 사이트코어(SiteCore)가 개발한 CMS(Content Management System)을 사용하고 있으며, 이 시스템은 다양한 기기에 자동으로 제공되고 있다. 따라서 이전에 사용하던 모바일 앱과는 달리 기기마다 전용 네이티브 앱을 개발할 필요가 없다.

이 기업은 2013년 초까지 자사의 VM웨어(VMware) 기반 프라이빗 클라우드를 이용해 CMS를 이행할 계획이며, 해당 시점이 되면 기업의 웹 사이트뿐만이 아니라 인트라넷(Intranet)도 새로운 CMS 플랫폼으로 이행될 예정이다.
 

SaaS 제공업체를 살펴보자
더 샌드 힐 그룹의 카메시 페마라주는 "모바일 앱이 SaaS 상품에 딱이다"라고 말했다. 모바일 SaaS 제공업체로는 클릭텍스(ClickTecs), 콘테이전트(Kontagent), SAP등이 있다.
 
모바일 SaaS 상품들은 매우 매력적일 수 있다. 따라서 자체적으로 모바일 클라우드 앱을 개발하거나 제 3자를 고용하여 개발을 아웃소싱하기 전에 SaaS 제공업체부터 고려할 가치가 있다.

사용자는 퍼블릭(앱을 고객 또는 협력사에 제공할 때) 또는 프라이빗 클라우드(앱을 내부적으로만 사용할 때)에서 앱을 구동할 수 있다. 이 접근방식의 또 다른 장점이 있는데, 이는 SaaS 제공업체가 보안, 관리, 업데이트, 업그레이드 등을 처리할 수 있기 때문에 IT 부서가 이런 문제를 고민하지 않아도 된다는 것이다.


모바일 플랫폼 우선 개발
에리 인슈어런스(Erie Insurance)의 밀러는 에리가 자사의 모든 앱에 있어서 모바일을 우선적으로 고려한다며 PC는 상황을 관망 중이라고 말했다. 밀러는 회사가 모바일 기기의 사용을 적극적으로 권장하고 있기 때문에 모바일 플랫폼을 우선적으로 개발하는 전략을 취하고 있다고 설명했다. .

하지만 이 전략에도 문제점은 존재한다. 일반적으로 모바일 기기는 PC보다 훨씬 적은 메모리와 CPU 처리능력을 갖고 있기 때문에 다른 플랫폼과는 달리 개발에 제약이 따르게 된다. 또한 모바일 앱은 종종 특정 활동에 초점을 맞추며 성능을 향상시키기 위해 네이티브 기능을 사용하고 PC에서는 바로 사용할 수 없는 특정 기능을 제공하곤 한다.

밀러는 해결해야 할 문제 중 하나가 "기기에 기반하여 스스로 적응할 수 있는 웹 포탈을 개발하는가? 아니면 기기에 특화된 앱을 개발하는가?"를 선택하는 것이라고 설명했다.  
그는 또 다른 문제로 "어떤 기기를 지원할 지와 관련하여 균형을 잡아야 한다"는 것을 지목했다. 분석 툴은 어떤 기기가 기업의 웹 사이트 방문에 사용될지 결정하는데 도움이 되기 때문에 밀러의 그룹은 상위 2~3개 기기를 위한 모바일 앱을 개발하고 있다.
 
에리 인슈어런스에서는 대부분 단순히 데이터를 수집하는 백엔드 애플리케이션에 데이터를 제공하기 위해 모바일 기기를 사용하고 있다. 에리에서 사용하는 앱 중에서 모바일 기기가 데이터에 접근하고 해당 데이터를 다른 모바일 기기로 전송하며 일시적으로 저장할 수 있도록 허용하는 앱은 그리 많지 않다.

모바일 기기로 다운로드 되는 데이터는 암호화되며 인증서는 휴대폰 사용자가 인증하는 모바일 기기로 다운로드 된다.

밀러는 앱 개발자들과 백엔드 전문가들이 협력해야 한다고 강조했다. "우리는 백엔드 전문가들이 어떤 기기를 사용하는지에 대해 혼란을 겪는 것을 원치 않는다"라고 설명했다. 이 기업은 이러한 이유로 개발자들과 백엔드 전문가들이 국제 표준으로 사용하는 보편적인 인터페이스를 채택했고 밀러는 전했다.
 
요약
구글 등의 일부 서비스 제공업체들은 이미 스마트폰 또는 태블릿에서 구동하는 브라우저를 통해 접속할 수 있는 모바일 클라우드 서비스를 제공하고 있다. 하지만 대부분의 모바일 앱은 벤더의 앱 스토어에서 다운로드 하며 모바일 기기에서 네이티브 모드로 구동하고 있다. 이를 위해서는 각 모바일 기기마다 개발 자원이 투입되어야 한다. 반면 모바일 클라우드를 사용하면 사용자들이 클라우드에서 모바일 기기의 브라우저를 통해 클라이언트 인터페이스를 보면서 직접 구동할 수 있다.

하지만, 모바일 클라우드를 사용하기 위해서는 기업들이 다양한 모바일 기기에서 사용할 수 있는 모바일 앱을 개발해야 한다. 이 때, HTML5 등 새로운 개발툴과 플랫폼이 도움이 된다. 비록 아직까지 모든 스마트폰이 HTML5를 지원하는 것은 아니지만 이는 시간이 해결해 줄 문제이다.

모바일 앱과 데이터가 서버에 저장되고 서버에서 구동될 경우, 기업이 처리 능력이 부족하면서 값싼 스마트폰을 기업용 기기로 이용할 수도 있다. 기대해볼 만한 부분이다.


* Bill Claybrook은 리눅스, 오픈소스, 가상화 및 클라우드 컴퓨팅 분야의 애널리스트로 뉴 리버 마케팅 리서치의 대표이기도 하다. ciokr@idg.co.kr


※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지



[원문출처 : http://www.ciokorea.com/news/13804?page=0,0]

맨 위로
맨 위로