모바일앱개발방식비교 : 네이티브, 웹, 하이브리드
내용 2 개요 2 모바일앱개발방식에대하여 2 네이티브앱 3 애플리케이션프로그래밍인터페이스 (API) 4 모바일웹앱 4 하이브리드앱 5 세가지개발방식비교 6 적합한방식선택 6 네이티브방식시나리오 6 웹방식시나리오 6 하이브리드방식시나리오 7 요약 개요 모바일을우선과제로선정하고추진하는기업들은모바일과제의 성패에영향을미칠모바일앱개발방식을먼저결정해야합니다. 네이티브, 웹, 하이브리드로대표되는모바일애플리케이션 ( 이후앱으로지칭 ) 개발방식중어떤개발방식을선택할것인 가하는것은, 기업에배정된예산, 프로젝트기간, 사용자요건, 앱기능등을종합적으로고려해정해져야합니다. 모바일앱개발방식에대하여 네이티브앱 네이티브앱은모바일기기에직접다운로드하여로컬 ( 기기 ) 에저장되는바이너리실행파일입니다. 사용자가직접설치하거나 경우에따라기업의관리자가설치할수있습니다. 네이티브앱은애플사의앱스토어 (App Store), 안드로이드의마켓플레이스 (Marketplace), 블랙베리사의앱월드 (App World) 등과같은공용앱스토어에서다운로드하면되나, 모바일공급업체에서직접 제공하는경우도있습니다. 모바일기기에앱을설치한후에는기기에서제공하는다른서비스처럼사용자가앱을실행합니다. 초기화할경우네이티브앱 인터페이스는중개요소나컨테이너없이모바일운영체제와직접통신합니다. 네이티브앱은모바일 OS 에서제공하는모든 API 에액세스할수있으며, 대부분해당모바일 OS 의고유기능을활용합니다. 네이티브앱을만들려면개발자가사람이읽을수있는형식으로소스코드를작성하고, 이미지, 오디오, 다양한 OS 별선언파일 등의리소스를만들어야합니다. 이러한리소스를개발한후모바일 OS 에서제공하는툴을이용해소스코드를컴파일하고배 포할수있는바이너리형태의실행파일을만듭니다. 이러한툴및기타유틸리티 / 파일을일반적으로모바일 OS 의소프트웨어개발키트 (SDK) 라고합니다. 네이티브앱개발과정 은모바일운영체제특성을타지않고모두비슷하지만, SDK 는 OS 별로다르며, 모바일 OS 별로고유툴을제공합니다. [ 표 1] 은 주요모바일 OS 에서제공하는툴, 언어, 패키징형식, 앱배포방법을보여줍니다. 이백서에서는 3 가지개발방식의장단점을살펴보고, 기업이처한상황에따라어떤개발방식이더적합한지제언하도록하겠 습니다. 2
모바일 OS 에서제공하는언어, 툴등이다르다는점이네이티브 앱개발방식의가장큰단점입니다. 예를들어애플 ios 용으로작성된코드를안드로이드에서는사용할수가없습니다. 그러므 로멀티플랫폼을지원하는네이티브앱을개발하려면개발기간도많이걸리고비용도많이듭니다. 이런단점에도불구하고기업들이네이티브방식을선호하는이유는애플리케이션프로그래밍인터페이스 ( 이하 API) 때문입니다. 애플리케이션프로그래밍인터페이스 (API) 모바일기기에네이티브앱을설치하고실행하면, 앱은모바일 운영체제에서제공하는전용 API 를호출해모바일운영체제와통신합니다. 모바일운영체제에서제공하는 API 는로우레벨 (Low Level) API 와하이레벨 (High Level) API 로구분됩니다. 로우레벨 API 앱은로우레벨 API 를호출해터치스크린이나키보드와직접입출력을하고, 그래픽을렌더링하며, 네트워크를연결합니다. 또 한마이크를통해수신한오디오를처리하고, 스피커나헤드폰을통해사운드를재생하며, 카메라로부터이미지나동영상등을수 신해저장합니다. GPS(Global Positioning System) 액세스, 방향정보수신, 반도체디스크또는상용하드웨어의파일읽기및 쓰기등도로우레벨 API 호출로이뤄집니다. 대부분의모바일 OS 는이러한서비스를수행할수있는일련의 애플리케이션을내장하고있지만, 네이티브앱에서는퍼블릭하게공개된하이레벨 API 를불러사용할수도있습니다. 다운로드가 가능한앱은다른 API 를통해 OS 업체가제공하는푸시알림이나인앱 (In App) 구매와같은다양한클라우드기반의서비스에 액세스할수있습니다. 그래픽사용자인터페이스 (GUI) 툴킷 OS 업체에서제공하는또다른중요한 API 세트는 GUI 툴킷입니다. 주요모바일 OS 는버튼, 입력필드, 슬라이더, 메뉴, 탭바, 대 화상자와같은 OS 고유의사용자인터페이스구성요소를제공합니다. 이러한구성요소들은해당모바일 OS 의기능을그대로전이 받으므로사용자가앱을쉽게사용하고즐길수있습니다. 각각의모바일플랫폼은고유의사용자인터페이스 (UI) 구성요소 를가지고있습니다. 따라서여러운영체제에서작동하는앱을설계하려면설계자가각 OS 의서로다른 UI 구성요소에대해잘 알고있어야합니다. API 가 OS 별로다르므로여러개의네이티브앱을개발하려면개발시간도많이걸리고비용도많이들지만, 모바일기기가제 공하는모든기능을제대로활용하는모바일앱을개발하기위해서는 API 활용은반드시필요합니다. 하이레벨 API 모바일운영체제는로우레벨하드웨어액세스서비스이외에, 개개인의사용자경험에영향을미치는하이레벨서비스도제공합니 다. 하이레벨서비스는웹검색, 일정및연락처관리, 사진앨범관리및전화또는문자메시지송수신기능등을일컫습니다. 애플 ios 안드로이드블랙베리 OS 윈도우폰 언어 Objective-C, C, C++ Java( 일부 C, C++) Java C#, VB.NET 등 툴 Xcode Android SDK BB Java Eclipse 플러그인 Visual Studio, 윈도우폰개발툴 패키징형식.app.apk.cod.xap 앱스토어 Apple App Store Google Play Blackberry App World Windows Phone Marketplace 3
모바일웹앱 최신모바일기기는 HTML5 의최신기능, Cascading Style Sheets 3(CSS3) 및고급 JavaScript 를지원하는브라우저로구성되어있습니다. 이러한최신기능과함께 HTML5 는페이지정 의언어에서브라우저기반의풍부한기능을가진애플리케이션 을개발하는표준으로자리잡고있습니다. HTML5 는유려한 UI 구성요소, 다양한미디어형식액세스, 위 치정보서비스, 네트웍이끊긴상태에서도오프라인으로사용할수있는다양한기능을지원합니다. 이러한 HTLM5 기술과현재 개발중인많은기능을사용하여개발자들은웹기술만으로고품질의애플리케이션을만들수있습니다. 웹앱방식은두가지로구분할수있는데, 두가지방식의차이점을비교하면서보면이해가빠릅니다. 모바일검색및모바일 용웹사이트는누구나익숙하게사용합니다. 모바일웹사이트는스마트폰에서액세스하고작은크기의화면에서터치하기편 안하게설계된 HTML 페이지를제공합니다. 일부기업에서는네 이티브앱을실행하는것처럼바로가기로실행할수있는네이티브앱과같은모바일웹사이트를만들어사용자환경을더욱개 선하고있습니다. 대부분의웹사이트에서는각자고유의기능을구현하기때문에 두가지웹방식모두광범위한가능성을보유하고있습니다. 모바일웹앱은특히나가능성이많습니다. 이러한추세를반영해 dojox.mobile, Sencha Touch, jquery Mobile 등의 JavaScript 툴킷이개발되었습니다. 이러한툴킷은네이티브앱과같은사용 자인터페이스를생성합니다. 이들모두모바일디바이스의브라우저에서실행되고모바일브라우저에서지원하는 JavaScript, CSS 및 HTML5 기능을활용합니다. 웹앱의가장큰장점중하나는멀티플랫폼을지원한다는것과 개발비용이적게든다는점입니다. 대부분의모바일업체들은브라우저에 WebKit 이라는동일한렌더링엔진을사용합니다. WebKit 은 Google 과 Apple 에서주도한오픈소스프로젝트로, 오늘날사용가능한가장포괄적인 HTML5 구현을제공합니다. 애플리케이션코드가 WebKit 과호환되는표준웹언어로작성되기때문에한앱에서다른디바이스및운영체제를지원할수있 으며기본적으로멀티플랫폼지원이됩니다. 모바일분야에서의잠재력과웹기술이지속적으로발전할것이라는밝은전망에도불구하고모바일웹방식은아직한계가있 습니다. 웹앱의작동방식을이해하면한계점이무엇인지금방이해할수있습니다. OS 와직접연동하여독립적으로실행하는네이티브앱과달리웹앱은브라우저내에서실행합니다. 브라우저는그자체가 OS API 에직접액세스하는네이티브앱이지만브라우저내에서실행되는웹앱이액세스할수있는 API 의수에는제한이있습니 다. 네이티브앱은디바이스에대해전체액세스권한을갖지만많은기능은웹앱에서제한적으로사용됩니다. 하이브리드앱 하이브리드방식은네이티브개발과웹기술을혼합한것입니다. 이방식을사용하면개발자가모바일플랫폼과상관없이웹기술로애플리케이션을개발할수있으며, 필요시네이티브 API 에 직접액세스할수있습니다. 애플리케이션의네이티브부분은운영체제 API 를사용하여브라 우저와디바이스 API 간에연결고리역할을하는임베디드 HTML 렌더링엔진을만듭니다. 이연결고리를통해하이브리드 앱은최신디바이스가제공해는모든기능을활용할수있습니다. 특성 Pure 모바일웹앱 Pure 모바일웹사이트 도구및지식 HTML, CSS 및 JavaScript로작성 HTML, CSS 및 JavaScript로작성 실행 바로가기설치가능. 네이티브앱처럼실행 URL(Uniform Resource Locator) 을통해웹사이트를탐색하여액세스 사용자환경 터치식의상호작용 UI 고정데이터기반페이지간이동을내비게이션방식으로하는 UI 성능 UI 로직이로컬에상주하므로앱응답이빠르고오프라인액세스가능 모든코드가서버에서실행되므로네트워크접속환경에따라성능좌우됨 4
앱개발자는이기능을직접코딩하거나 PhoneGap 과같은기존 솔루션을활용할수있습니다. PhoneGap 은모든모바일운영체제에일관된단일 JavaScript 인터페이스를제공하는오픈소스 라이브러리입니다. 세가지개발방식비교 다음은세가지개발방식을비교요약한것입니다. 앱의네이티브부분은독립적으로개발할수있지만, 일부솔루 션들은네이티브컨테이너를제품의구성요소로제공하기도합니다. 따라서개발자는웹언어만을사용하여모든디바이스기능 을활용하는고급애플리케이션을개발할수있습니다. 경우에 따라개발자가기업의고유한요구사항에따라네이티브컨테이너를직접지정할수있도록허용하는솔루션도있습니다. 앱의웹부분은서버에상주하는웹페이지가될수도있고, 애플리케이션코드에통합되어디바이스에로컬로저장되는일련의 HTML, JavaScript, CSS 및미디어파일이될수도있습니다. 두방식모두각각장단점이있습니다. 서버에서호스팅되는 HTML 코드를사용하면앱스토어에서규정하는승인, 배포, 보안규정에상관없이앱을업데이트할수있습니다. 하지만이방식 은디바이스를네트워크에연결하지않으면콘텐츠에액세스할수없기때문에네트웍이끊기면앱사용이불가능합니다. 반면 에애플리케이션자체에웹코드를통합하면성능과액세스가용 성을높일수있지만원격업데이트가불가능합니다. 따라서두가지방식을결합하여최선의결과를달성할수있습니다. 이러 한시스템은유연성을위해웹서버의 HTML 리소스를호스팅하고, 성능을위해모바일디바이스의캐시에로컬로저장하도록 설계됩니다. 네이티브방식은성능과디바이스의액세스가용성을높이지만 높은비용과업데이트문제가단점입니다. 웹방식은상대적으로 간단하고비용이적게들며업데이트가쉽지만, 기능상제한이따르므로네이티브 API 호출을사용하여제공할수있는우수한 사용자환경을제공하기어렵습니다. 하이브리드방식은이두방식의절충안으로, 여러기업들이선택하고있으며, 특히여러 운영체제를한번에지원해야할경우선호되는방식입니다. 위의표를보면알수있듯이한가지방식으로모든것을만족 시킬수는없습니다. 기업의배정된예산, 개발기간, 내부개발인력현황, 사용자층, 필요한애플리케이션기능, IT 인프라등을 종합적으로고려해최선을선택해야합니다. 한가지분명한것은사용자경험과애플리케이션기능을한쪽에, 개발비용과출시기간을다른한쪽에놓고적절한균형점을찾 아야한다는것입니다. 특성 네이티브앱 하이브리드앱 웹앱 개발언어 네이티브전용 네이티브및웹또는웹전용 웹전용 코드이식성및최적화 없음 높음 높음 디바이스고유의기능액세스 높음 중간 낮음 기존지식활용도 낮음 높음 높음 유려한 UI 높음 중간 중간 업그레이드유연성 낮음 ( 항상앱스토어이용 ) 중간 ( 일반적으로앱스토어이용 ) 높음 설치경험수준 높음 ( 앱스토어에서 ) 높음 ( 앱스토어에서 ) 중간 ( 모바일브라우저이용 ) 5
적합한방식선택 다음으로기업의요건에맞는개발방식을선택할때참조할수있는체크리스트를정리해보았습니다. 네이티브방식시나리오 기존네이티브기술 : 네이티브방식과관련된대표적인논쟁중 하나는멀티플랫폼지원이어렵다는것입니다. 네이티브방식으로멀티플랫폼을지원하려면, 각플랫폼별앱을별도로만들어 야하고, 필요한개발인력도모두다릅니다. 당연히비용이많이 들고모바일개발역량을내재화하는것도어렵습니다. 단일모바일 OS 지원 : 어떤기업은단일모바일 OS 를사용하는 특정대상사용자를위한모바일애플리케이션을필요로하기도 합니다. 예를들어전사적으로직원용모바일기기로 BlackBerry 기기를제공하고있다면, 사내모바일앱은블랙베리용으로만개 발하면됩니다. 제한된기술과도구만있어도단일네이티브애플리케이션개발을진행할수있기때문에, 플랫폼을 1 개만지원 할것이라면네이티브앱이적합합니다. 네이티브기능 : 일부애플리케이션은단일기능이핵심입니다. 예 를들어 Skype 의핵심기능은 VoIP(Voice over Internet Protocol) 와사용자연락처에대한액세스입니다. 그리고이기능 은네이티브방식으로만개발할수있습니다. 이런경우는다른선택지가없이네이티브방식을선택해야합니다. 유려한 UI 의필요성 : 실시간응답을제공하는유려한 UI 가필요 한게임과같은애플리케이션은웹기술로는요건을충족하기어렵습니다. 이러한요구사항을가진애플리케이션개발은네이티 브방식이선호됩니다. 웹방식시나리오 직접배포 : 일부기업에서는앱을내부적으로제어할수있고복 잡하고시간이오래걸리는승인절차없이배포하기를원합니다. 이경우웹언어만을사용하여앱의배포와정기업데이트를수 행할수있습니다. 파일럿앱 : 네이티브앱과웹앱개발의비용및출시기간을비 교해볼때웹방식을사용하여앱의파일럿버전을만들면매우 효율적이고경제적입니다. 앱을기획한후처음부터새로운애플리케이션을만들것인지아니면하이브리드애플리케이션의기존 코드를활용할것인지를선택할수있습니다. 노출성 : 이외웹앱은검색엔진노출도가높습니다. 앱스토어를 통해제공되는앱보다더많은사용자에게노출되는장점이있습 니다. 하이브리드방식시나리오 상호절충 : 하이브리드방식을사용하면웹앱과네이티브방식 의장단점을상호보완하고절충할수있습니다. 네이티브를통해개발자는모바일기기가제공하는다양한기능을모두활용할 수있으며, 한편으로는웹언어를사용하여작성한코드를멀티 플랫폼에서공유하여개발및지속적인관리를중앙에서보다빠르고경제적으로수행할수있습니다. 자체기술력 : 웹개발기술은매우일반적이므로내부에활용가 능한개발인력을쉽게찾을수있습니다. 하이브리드방식을사용하면웹개발자는 HTML, CSS, JavaScript 등과같은웹기술 만가지고도네이티브와유사한사용자경험을제공하는애플리케이션을만들수있습니다. 미래를위한고려 : HTML5 는가용성이나기능모두에서급속도로 성장하고있습니다. 많은분석가들이 HTML5 가클라이언트애플 리케이션개발을위한기본기술이될가능성이높다고예상합니다. 대부분의앱을 HTML 로작성하고필요한부분에서만네이티 브코드를사용하면기존투자를보호할수있습니다. 6
요약 모바일앱이비즈니스성장과새로운기회창출을위한핵심요소로부상함에따라, 기업들은더많은핵심기업서비스를모바일 화하고있습니다. 이과정에서기업의목표를달성하기위한최적의개발방법을모색하지만, 한가지개발방식으로는기업의 복잡한요건을모두충족시키기는어렵습니다. 이백서에서는한가지개발방식이아니라, 각방식이제공하는 장점을활용하고개발방식과상관없이지속적으로개발하게될모바일앱의개발을지원하는유연한솔루션을해답으로보여줍 니다. 하이브리드, 네이티브, 웹개발방식의선택은한방식이주가될 수있는있어도한가지방식만을선택하는것은아닙니다. 모바 일전략을세우는기업들은다음요소들을고려해야합니다. 모바일앱개발, 백엔드서비스와연동, 앱관리등전체수 명주기관리관점의전체비용및복잡성을증가시키는모바일기기및기술의파편화 소비자와기업의모바일채택가속화에따른보안, 확장성및제어에대한요구사항증가 생각지도못한새로운유형과새로운용도의모바일앱을가져올근거리통신, 위치정보, 증강현실, 소셜네트워크등과 같은새로운기능과보조기술 앱스토어의제출및승인과정없이사용자가손쉽게이용 할수있도록앱을배포하고, 업데이트배포및전체앱포트 폴리오관리를신속하게수행할수있는새로운앱배포채널 ( 공용및개인채널 ) 기업은이러한변수를모두고려하여모든유형의앱을지원하는유연성과백엔드기간업무서비스와완벽한연동, 높은수준의보 안보장, 중앙의단일접점으로전체애플리케이션포트폴리오모니터링및관리기능을제공하는솔루션을선택해야합니다. 자세한내용을보고싶거나무료평가판을다운로드하려면다음웹사이트를방문하시기바랍니다. www.ibm.com/software/products/ko/worklight-foundation 7
추가정보 모바일앱개발에대한 IBM Worklight 자료를원하시면 IBM SWG 마케팅총괄본부 (02-3781-7500) 또는 IBM 비즈니스파트너사에문의해주십시오. 추가적으로, IBM Global Financing 은가장비용효율적방법과 전략적방법으로비즈니스에서필요로하는 IT 솔루션을취득할수있도록도와줍니다. IBM 은귀사의총소유비용을개선하는맞 춤형 IT 재무솔루션을제공합니다. IBM Global Financing 은중대한 IT 투자에자본을투입하고귀사의비즈니스를발전시키는 가장현명한선택입니다. 자세한정보는다음웹사이트를참조하십시오. ibm.com/kr/financing Copyright IBM Corporation 2013 IBM Corporation Software Group Route 100 Somers, NY 10589 Produced in the United States of America 2013 년 4 월 IBM, IBM 로고, ibm.com, 는전세계의여러관할구역에등록된 International Business Machines Corp. 의상표입니다. 기타제품및서비스이름은 IBM 또는타사의상표입니다. 현재 IBM 상표목록은웹 " 저작권및상표정보 " (ibm.com/legal/copytrade.shtml) 에있습니다. Java 및모든 Java 기반상표및로고는 Oracle 및 / 또는해당자회사의상표또는등록상표입니다. 이문서는처음발행될당시의날짜를기준으로업데이트되었으며 IBM은언제든지문서내용을변경할수있습니다. 일부제품은 IBM 매장이있는국가에서도제공되지않습니다. IBM 제품및프로그램과함께사용되는기타제품또는프로그램을평가및검증하는것은사용자의책임입니다. 이문서의정보는상품성에대한보증, 특정목적의적합성여부및저작권을침해하지않는다는보증또는조건을포함해명시적또는암묵적보증없이 " 있는그대로 " 제공됩니다. IBM 제품은제공된약정에명시된조항및조건에따라보증됩니다. 재활용하십시오 WSW14182-KRKO-02