2011.06.01

모바일, 클라우드, 그리고 애플리케이션 개발의 근본적인 변화

Neil McAllister | InfoWorld
모바일 애플리케이션은 네이티브 코드로 설계해야 할까, 아니면 HTML이나 자바스크립트와 같은 웹 기술들을 이용해야 할까?개발자들은 오랜 시간 양분되어 이 문제에 관해 논의해 왔다. 
 
스티브 잡스는 처음에 개발자들에게 기기의 내장 브라우저를 통해 필요한 모든 애플리케이션을 배치할 수 있도록 할 것을 제안했지만, 그것은 애플이 업계를 선도하는 자사 앱스토어의 가능성을 보고 그것을 출시하기 전의 이야기였다.
 
웹 애플리케이션의 본질적인 변화
그 이후로는, 심지어 이미 설립된 웹사이트들마저도 모바일 브라우저에 맞추려 애쓰기 보다는 콘텐츠를 네이티브 앱(native app)을 통해 모바일 기기로 전달하는 편을 택하고 있다. HTML5에서 보여준 개선에도 불구하고 많은 개발자들은 웹 기술들이 아직도 스마트폰과 태블릿의 독특한 요구 사항들을 만족시키기에는 부족하다고 느낀다. 
 
그것이 사실이라면, 온라인 정보 제공 서비스들이 어떻게 개발되고 배치되어 왔는지를 다시 생각해 볼 필요가 있다. 과거에는 개발자들이 웹사이트를 먼저 설계하고, 그 다음에 동일한 콘텐츠를 모바일 앱에 맞도록 수정했다. 그러나 모바일 기기가 점차 사용자들이 온라인 콘텐츠와 접하는 주된 수단으로 자리잡고 있는 오늘날의 시장에서, 이런 접근법은 아마 거꾸로 적용되어야 할 것이다. 
 
웹 애플리케이션 초기에 겪었던 것과 마찬가지로 모바일 개발의 진화가 요구된다. 초창기 기업용 웹 애플리케이션들은 기존 메인프레임에서 데이터를 추출해 브라우저 맞춰 화면에 뿌려주는 정도의 역할 밖에는 수행하지 않았다. 그러나 브라우저 기반의 컴퓨팅이 점차 표준화되면서 애플리케이션 로직은 메인프레임을 벗어나 HTML 출력을 주요 타깃으로 삼게 되었다. 
 
모바일 애플리케이션들도 이와 동일한 변화를 겪고 있다. 정보 제공 서비스의 다음 세대는 데스크톱 컴퓨터의 브라우저와 모바일 앱을 동등하게 간주하며 양쪽에게 동일한 애플리케이션 로직으로 콘텐츠를 제공할 것이다. 
 
그와 동시에 이러한 변화가 클라우드 컴퓨팅으로의 이동이라는 IT 업계의 다른 커다란 변화와 맞물려 이행되고 있다는 점이 중요하다. PaaS가 성장하면서, 정보 서비스 제공업체들 입장에서는 애플리케이션 로직을 반드시 그들이 보유한 인프라에서 호스팅해야 한다는 생각을 버리기 시작했다.
 
클라우드에 연결하기
애플리케이션 개발자들에게는 이런한 변화들을 동시에 다루는 것이 힘들 수 있다. 다행스럽게도, 플랫폼 제공업체들은 하이브리드 웹/모바일 앱으로의 이전을 가능한 순조롭게 할 수 있도록 툴들을 이미 제공하고 있다.  
 
최근 열린 구글 I/O 개발자 컨퍼런스에서 구글은 마침내 이클립스용 구글 플러그인(GPE)의 새로운 베타 버전을 발표했다. GPE는 개발자들이 구글 앱 엔진 클라우드 플랫폼용 애플리케이션들을 자바 IDE인 이클립스 안에서 모두 설계하고, 시험하고, 업로드할 수 있도록 해주는 툴이다. 
 
GPE의 이전 버전들은 복잡한 웹 기반 UI들을 생성할 수 있는 프레임워크인 구글 웹 툴킷(GWT)의 통합 지원을 통해 개발자들이 앱 엔진용 애플리케이션들을 설계할 수 있게 했다. 새로운 GPE2.4베타 버전은 여기에 안드로이드용 앱들을 위한 지원을 추가했다. 사실상 개발자들이 앱 엔진용 애플리케이션 로직을 구축하면, 웹과 모바일 용 I/O 코드가 동시에 생성된다. 
 
이와 유사하게, 마이크로소프트는 윈도우 애저 클라우드 플랫폼을 모바일 앱의 백엔드로 자리매김시키고 있다. 기대와는 달리, 윈도우 폰 7용으로 제한시키지는 않고 있다. 새로 출시된 디바이스용 윈도우 애저 툴킷(Windows Azure Toolkits for Devicfes)은 iOS용 및 안드로이드용 라이브러리들까지 포함할 예정이다. 
 
마이크로소프트의 의도를 쉽게 파악할 수 있다. iOS는 윈도우 폰 7을 뛰어넘는 최고의 모바일 플랫폼이지만, 한편 애플은 윈도우 애저, 구글 앱 엔진, 아마존의 EC2와 견줄만한 클라우드 컴퓨팅 플랫폼을 아직 제공하지 않고 있다. 소문에 따르면 애플이 무언가 가지고 있을것이라 하지만, 애플이 빨리 움직이지 않으면 마이크로소프트가 iOS 앱의 모바일 백엔드 제공업체로 확고한 기반을 다질 수 있는 큰 기회를 잡게 될 것이다.
 
앞에 놓여있는 과제들
모바일 애플리케이션들을 네이티브 코드로 설계해야 할까 아니면 웹 기술들을 이용하여 디플로이 해야 할까? 둘 모두 답이 될 수 있을 듯 하다. 즉 클라우드 플랫폼을 함께 이용할 수 있다. 모바일과 클라우드 아키텍처의 결합으로 이전하는 것은 어쩔 수 없는 것인 한편, 개발자들에게는 몇 가지 중요한 문제점들을 시사한다. 
 
첫째로, 모든 애플리케이션을 클라우드 인프라에 호스팅하는 것은 확실히 위험부담을 안고 있다. 특히 클라우드를 이용하는 앱들을 실질적으로 무력하게 만들 수 있는 시스템 정전에 대한 위험 부담은 강력하다. 여태껏 어떤 클라우드 컴퓨팅 플랫폼도 100퍼센트의 신뢰성을 입증하지 못했으며 아마존, 구글, 마이크로소프트를 이용하는 고객들은 모두 정전을 경험한 적이 있다. 
 
개발자들이 모바일 플랫폼 제공업체들의 “폐쇄형 사업구조(walled gardens)”에 대해 불평하는 것만큼이나 클라우드 컴퓨팅 플랫폼 사용자들이 업체들의 록인(lock-in) 전략을 감수해야 한다는 것도 중요하다. 서비스 간에 대용량의 데이터 저장소를 옮기는 것은 문제가 될 수 있으며, 클라우드 서비스 업체 간을 이동할 경우 애플리케이션 로직은 많은 부분 재구성 되어야 할 것이다. 아파치 기관과 IEEE를 비롯하여 상당수 기관들이 적극적으로 상호운용성 표준을 추구하고 있지만, 여전히 역부족이며 여기에 클라우드 제공업체들이 스스로 협력할만한 요인도 충분하지 않다. 
 
그러나 가장 큰 문제는 클라우드 영역과 모바일 개발 사이를 잘 이어줄 개발자들을 발굴하는데 있다. 두 가지 방법론 모두 최근에 등장했으며, 특히 많은 회사들이 모바일 앱을 개발하는데 필요한 기술을 얻는데 있어 아웃소싱이나 비싼 재교육에 의지하면서 모바일 개발자들에 대한 수요는 지속적으로 높은 상태로 유지되고 있다. 모바일 개발자인 동시에 클라우드 플랫폼용 앱까지 잘 설계할 수 있는 사람을 찾는다는 건 지나친 욕심인 것처럼 보일 수도 있다. 
 
물론, 새로운 인재의 고용은 프로젝트 매니저들에게는 우울한 전망이 될 수 있겠지만, 능력있는 개발자들에게는 기회가 될 수 있다. 애플리케이션 개발은 계속해서 변화하고 있으며, 이제 새롭게 공부해야 할 시간이다. editor@itworld.co.kr



2011.06.01

모바일, 클라우드, 그리고 애플리케이션 개발의 근본적인 변화

Neil McAllister | InfoWorld
모바일 애플리케이션은 네이티브 코드로 설계해야 할까, 아니면 HTML이나 자바스크립트와 같은 웹 기술들을 이용해야 할까?개발자들은 오랜 시간 양분되어 이 문제에 관해 논의해 왔다. 
 
스티브 잡스는 처음에 개발자들에게 기기의 내장 브라우저를 통해 필요한 모든 애플리케이션을 배치할 수 있도록 할 것을 제안했지만, 그것은 애플이 업계를 선도하는 자사 앱스토어의 가능성을 보고 그것을 출시하기 전의 이야기였다.
 
웹 애플리케이션의 본질적인 변화
그 이후로는, 심지어 이미 설립된 웹사이트들마저도 모바일 브라우저에 맞추려 애쓰기 보다는 콘텐츠를 네이티브 앱(native app)을 통해 모바일 기기로 전달하는 편을 택하고 있다. HTML5에서 보여준 개선에도 불구하고 많은 개발자들은 웹 기술들이 아직도 스마트폰과 태블릿의 독특한 요구 사항들을 만족시키기에는 부족하다고 느낀다. 
 
그것이 사실이라면, 온라인 정보 제공 서비스들이 어떻게 개발되고 배치되어 왔는지를 다시 생각해 볼 필요가 있다. 과거에는 개발자들이 웹사이트를 먼저 설계하고, 그 다음에 동일한 콘텐츠를 모바일 앱에 맞도록 수정했다. 그러나 모바일 기기가 점차 사용자들이 온라인 콘텐츠와 접하는 주된 수단으로 자리잡고 있는 오늘날의 시장에서, 이런 접근법은 아마 거꾸로 적용되어야 할 것이다. 
 
웹 애플리케이션 초기에 겪었던 것과 마찬가지로 모바일 개발의 진화가 요구된다. 초창기 기업용 웹 애플리케이션들은 기존 메인프레임에서 데이터를 추출해 브라우저 맞춰 화면에 뿌려주는 정도의 역할 밖에는 수행하지 않았다. 그러나 브라우저 기반의 컴퓨팅이 점차 표준화되면서 애플리케이션 로직은 메인프레임을 벗어나 HTML 출력을 주요 타깃으로 삼게 되었다. 
 
모바일 애플리케이션들도 이와 동일한 변화를 겪고 있다. 정보 제공 서비스의 다음 세대는 데스크톱 컴퓨터의 브라우저와 모바일 앱을 동등하게 간주하며 양쪽에게 동일한 애플리케이션 로직으로 콘텐츠를 제공할 것이다. 
 
그와 동시에 이러한 변화가 클라우드 컴퓨팅으로의 이동이라는 IT 업계의 다른 커다란 변화와 맞물려 이행되고 있다는 점이 중요하다. PaaS가 성장하면서, 정보 서비스 제공업체들 입장에서는 애플리케이션 로직을 반드시 그들이 보유한 인프라에서 호스팅해야 한다는 생각을 버리기 시작했다.
 
클라우드에 연결하기
애플리케이션 개발자들에게는 이런한 변화들을 동시에 다루는 것이 힘들 수 있다. 다행스럽게도, 플랫폼 제공업체들은 하이브리드 웹/모바일 앱으로의 이전을 가능한 순조롭게 할 수 있도록 툴들을 이미 제공하고 있다.  
 
최근 열린 구글 I/O 개발자 컨퍼런스에서 구글은 마침내 이클립스용 구글 플러그인(GPE)의 새로운 베타 버전을 발표했다. GPE는 개발자들이 구글 앱 엔진 클라우드 플랫폼용 애플리케이션들을 자바 IDE인 이클립스 안에서 모두 설계하고, 시험하고, 업로드할 수 있도록 해주는 툴이다. 
 
GPE의 이전 버전들은 복잡한 웹 기반 UI들을 생성할 수 있는 프레임워크인 구글 웹 툴킷(GWT)의 통합 지원을 통해 개발자들이 앱 엔진용 애플리케이션들을 설계할 수 있게 했다. 새로운 GPE2.4베타 버전은 여기에 안드로이드용 앱들을 위한 지원을 추가했다. 사실상 개발자들이 앱 엔진용 애플리케이션 로직을 구축하면, 웹과 모바일 용 I/O 코드가 동시에 생성된다. 
 
이와 유사하게, 마이크로소프트는 윈도우 애저 클라우드 플랫폼을 모바일 앱의 백엔드로 자리매김시키고 있다. 기대와는 달리, 윈도우 폰 7용으로 제한시키지는 않고 있다. 새로 출시된 디바이스용 윈도우 애저 툴킷(Windows Azure Toolkits for Devicfes)은 iOS용 및 안드로이드용 라이브러리들까지 포함할 예정이다. 
 
마이크로소프트의 의도를 쉽게 파악할 수 있다. iOS는 윈도우 폰 7을 뛰어넘는 최고의 모바일 플랫폼이지만, 한편 애플은 윈도우 애저, 구글 앱 엔진, 아마존의 EC2와 견줄만한 클라우드 컴퓨팅 플랫폼을 아직 제공하지 않고 있다. 소문에 따르면 애플이 무언가 가지고 있을것이라 하지만, 애플이 빨리 움직이지 않으면 마이크로소프트가 iOS 앱의 모바일 백엔드 제공업체로 확고한 기반을 다질 수 있는 큰 기회를 잡게 될 것이다.
 
앞에 놓여있는 과제들
모바일 애플리케이션들을 네이티브 코드로 설계해야 할까 아니면 웹 기술들을 이용하여 디플로이 해야 할까? 둘 모두 답이 될 수 있을 듯 하다. 즉 클라우드 플랫폼을 함께 이용할 수 있다. 모바일과 클라우드 아키텍처의 결합으로 이전하는 것은 어쩔 수 없는 것인 한편, 개발자들에게는 몇 가지 중요한 문제점들을 시사한다. 
 
첫째로, 모든 애플리케이션을 클라우드 인프라에 호스팅하는 것은 확실히 위험부담을 안고 있다. 특히 클라우드를 이용하는 앱들을 실질적으로 무력하게 만들 수 있는 시스템 정전에 대한 위험 부담은 강력하다. 여태껏 어떤 클라우드 컴퓨팅 플랫폼도 100퍼센트의 신뢰성을 입증하지 못했으며 아마존, 구글, 마이크로소프트를 이용하는 고객들은 모두 정전을 경험한 적이 있다. 
 
개발자들이 모바일 플랫폼 제공업체들의 “폐쇄형 사업구조(walled gardens)”에 대해 불평하는 것만큼이나 클라우드 컴퓨팅 플랫폼 사용자들이 업체들의 록인(lock-in) 전략을 감수해야 한다는 것도 중요하다. 서비스 간에 대용량의 데이터 저장소를 옮기는 것은 문제가 될 수 있으며, 클라우드 서비스 업체 간을 이동할 경우 애플리케이션 로직은 많은 부분 재구성 되어야 할 것이다. 아파치 기관과 IEEE를 비롯하여 상당수 기관들이 적극적으로 상호운용성 표준을 추구하고 있지만, 여전히 역부족이며 여기에 클라우드 제공업체들이 스스로 협력할만한 요인도 충분하지 않다. 
 
그러나 가장 큰 문제는 클라우드 영역과 모바일 개발 사이를 잘 이어줄 개발자들을 발굴하는데 있다. 두 가지 방법론 모두 최근에 등장했으며, 특히 많은 회사들이 모바일 앱을 개발하는데 필요한 기술을 얻는데 있어 아웃소싱이나 비싼 재교육에 의지하면서 모바일 개발자들에 대한 수요는 지속적으로 높은 상태로 유지되고 있다. 모바일 개발자인 동시에 클라우드 플랫폼용 앱까지 잘 설계할 수 있는 사람을 찾는다는 건 지나친 욕심인 것처럼 보일 수도 있다. 
 
물론, 새로운 인재의 고용은 프로젝트 매니저들에게는 우울한 전망이 될 수 있겠지만, 능력있는 개발자들에게는 기회가 될 수 있다. 애플리케이션 개발은 계속해서 변화하고 있으며, 이제 새롭게 공부해야 할 시간이다. editor@itworld.co.kr

X