본 글은 Mozilla Tech Evangelist인 Chris Heilmann의 HTML5 mythbusting라는 글을 번역한 것입니다.
HTML5의 실용성을 둘러싸고 요즈음 벌어지고있는 논쟁은 많은 잘못된 가정에 근거하고 있습니다. 계속 반복되거나 많은 경우 올바른지 전혀 검증하지 않은 HTML5에 대한 오해와 관련결되어 있습니다. 이 글에서는 이러한 오해들을 해소하는 차원에서 설명을 해 보겠습니다.
1. HTML5는 느리다?
HTML5의 문제에 대해 이야기하고 싶어하는 사람들이 반드시 주장하는 것이 바로 “성능”입니다. 여기에서 가장 큰 문제는 비교에 사용된 내용 대부분이 마치 사과와 배를 비교하는데 지나지 않는다는 사실을 간과하고 있습니다.
HTML5 웹앱과 네이티브 애플리케이션의 성능을 비교하는 것은 주문형 양복과 기성품을 비교하는 것과 같습니다. 물론 주문형 정장이나 장갑처럼 몸에 익숙한 것이 좋지만, 만약 나중에 팔거나 누군가에게 물려 싶은 경우 어렵습니다. 다른 사람에게도 똑같이 익숙하지 않기 때문입니다.
네이티브 애플리케이션은 바로 그런 측면에서 특정 환경과 목적에 의해 개발하고 최적화한 상태로 고정하는 것입니다. 한편 HTML5는 디자인 원칙에 있는 것처럼 사용 환경, 모니터, 기술 플랫폼과는 독립적으로 작동하는 웹 기술입니다. 웹에서는 성공하기 위한 유연성을 최대한 제공합니다. 그리고 웹의 정의대로 해석하면, 모든 사람을 위해 존재하는 것이지, 매우 비싼 하드웨어를 구입할 여유가 있는 특정 기업이나 특정 기술 환경에 얽매이지 않습니다.
네이티브 애플리케이션은 단말기나 플랫폼 기술에 맞추어 처음부터 개발 해야 하나, HTML5 앱이라면 스마트 폰에서 태블릿, 데스크톱까지 하나의 제품으로 대응할 수 있습니다. 또한 화면 크기와 기능을 고정하지 않고 사용자 환경을 체크하고 적절히 대응하는 것도 가능하며, 새로운 휴대 전화를 살 수 없는 사람들을 사람들에게도 고성능 스마트폰을 사용하는 사람과 같은 사용자 경험을 제공할 수 있습니다.
한편 네이티브 애플리케이션은 많은 경우 업그레이드를 요구합니다. 사용자에게 새로운 하드웨어 구입을 강요하고, 그렇지 않으면 그 앱을 써볼 수 없습니다. 유연성이라는 관점에서 보면 HTML5 웹 앱은 훌륭한 역할을하고, 반대로 네이티브 애플리케이션은 사용자를 특정 하드웨어 및 플랫폼에 의존시켜, 구입할 여유가 없거나 피하고 싶은 업그레이드가 제공되면 대안이 없게 됩니다. 그 대표적인 예는 최근 화제가 된 iOS6에서 Apple의 독자적인 지도 앱으로 전환입니다. 많은 사람들이 불만을 표시하고 구글맵을 그대로 쓰고 싶어했지만 현재 불가능합니다.
HTML5는 데스크톱 성능면에서 네이티브 애플리케이션을 충분히 능가하는 성능을 갖추고 있으며, 스크롤 성능, 동영상 실시간 분석 및 편집, 초고속 프레임 속도에서 풀 3D 게임 실행이나 빠른 레이싱 게임의 구현 까지 보면, 어디에 성능 문제가 있는지 묻지 않을 수 없습니다.
그 질문의 대답은 바로 하드웨어로의 접근입니다. HTML5 웹앱은 iOS와 Android 용으로 개발 된 모바일 하드웨어에서는 최고의 성능을 얻을 수있는 영역에 접근 할 수 없습니다. iOS의 웹뷰는 네이티브 애플리케이션과 다르지 않는 원리를 이용하고 있음에도 불구하고, 빠르게 동작하지 못하도록 운영 체제에 의해 방해받고 있습니다. Android는 표준 브라우저 보다 Firefox의 속도가 더 빠르다라는 점을 보여 주고 있습니다.
Android의 표준 브라우저는 장기간 개선하지 않고 웹 기술의 혁신을 방해하고 위협했던 90년대의 Internet Explorer를 떠올리게합니다. (생각해 보면, 그게 바로 Mozilla와 Firefox가 탄생한 이유였지요.) 결론적으로, HTML5는 흙길에서도 운전할 수 있도록 설계된 F1 자동차이지만, 지금은 아직 해결 할 방법이 없는 많은 짐을 폐쇄된 운영체제에 의해 부과 된 상태라고 말할 수 있습니다.
2. HTML5는 수익화 할 수 없다?
HTML5는 개방형 웹 기술을 기반으로 한 기술 집합체입니다. HTML5는 수익화 모델을 가지고 있지 않다는 견해는 웹 그 자체가 돈을 벌 수 없다는 것과 같습니다 (광고를 지원하는 뉴스 사이트에 이러한 논조의 기사가 실린 경우 특히 아이러니합니다.)
폐쇄적 앱 스토어 기반에서 자사 제품을 파는 것이 더 간단한 방법이라고 생각할 수 있지만, 그 성공에는 많은 과장이 있으며 실제로 폐쇄적인 시장에서 하나의 어플을 팔고 생계를 이을 수 있는 개발자는 소수입니다. 앱 마켓에서 검색 가능성과 신뢰성이 점점 하락하는 가운데 빠르게 찾을 수 있도록 검색 결과 첫 페이지에 실리는 것이 가장 중요한 과제가 되어, 많은 개발자는 하나의 앱을 집중 개발하는 대신 같은 다양한 응용 프로그램을 양산하고 있습니다.
네이티브 애플리케이션을 갖춘 폐쇄적인 앱스토어가 개발자에게 실제 문제가 될 수 있는 점이 이것입니다. 앱은 웹에서는 주소(URL)도 없고, 그 플랫폼 밖에서 찾을 수 없습니다. 만든 응용 프로그램은 하나씩 별도로 만들어 앱 스토어 시장에 직접 등록해야하며 각 심사와 등록 과정을 준수하여야하며, 제품의 기능에 빠른 업데이이트를 제공 할 방법이 없습니다 .
HTML5 웹 앱은 URL을 가지고, Adobe PhoneGap Build 같은 앱패키징을 하면 iOS와 Android 용 네이티브 앱으로 변환 할 수 있습니다. 하지만, 그 반대는 불가능합니다.
장기적인 관점에서 개발자에게 최적의 전략은 무엇인가라는 문제가 제기 될 것입니다. 앱 스토어의 재량으로 언제든지 앱 서비스가 중지되거나 막힐 가능성이있는 특정 폐쇄적 환경에 계속 머무르거나, 개방형 배포 네트워크를 통해 응용 프로그램을 제공하면서 폐쇄적인 시장도 함께 커버하느냐 하는 선택입니다.
사실은 Android와 iOS의 시장에있는 많은 웹은 HTML5로 작성된 PhoneGap에서 변환 된 것이고, Financial Times HTML5 웹앱 개발로 인해 기본 앱보다 많은 수익을 올리고 있다는 소식은 큰 화제가 되었습니다. 최근에도 뉴욕타임즈도 웹 기반 앱으로 전환한다고 발표한 바 있습니다.
3. HTML5는 오프라인으로 사용할 수 없다?
HTML5는 웹 기술의 집합체이기 때문에 사용하는 동안 온라인에서만 가능하다고 생각하는 사람이 있을 수 있으나 이는 완전히 잘못된 것입니다. HTML5 웹 앱에서는 콘텐츠를 오프라인으로 저장할 방법이 얼마든지 있습니다. 가장 쉬운 방법은 많은 브라우저가 지원하는 Web Storage API를 사용하는 것입니다. (그러나, Opera mini는 제외합니다. 이 브라우저는 클라우드 서비스를 통해 콘텐츠를 수신하고, 자체 스토리지 도구를 제공하고 있습니다).
또한 Internet Explorer를 제외한 모든 브라우저가 지원하는 오프라인 캐시를 사용하면, 웹 기반 앱 파일 패키지 전체를 오프라인의 특정 저장소에 설치(저장)할 수 있습니다. Web Storage API가 제공하는 기능 이상으로 복잡한 데이터를 저장할 때 ( Chrome 및 Firefox가 지원하는 ) IndexedDB 및 (iOS와 Safari가 지원하는) WebSQL을 사용할 수 있습니다. Lawnchair 같은 호환성 문제를 해결하고 개발자의 편의성을 높이기 라이브러리도 공개되어 있습니다.
4. HTML5는 개발 환경이 부족하다?
흔히 말하는 우려 중 하나로, HTML5는 개발자 도구가 다른 언어나 프레임웍에 비해 부족하다는 점을 들 수 있습니다. 그런 이야기는 웹 개발자 스스로 말하는 것이 아니고, 자사 개발자 업무 효율을 올리는 다른 방법을 생각하는 대신 소프트웨어를 구입하는 것으로 해결 하고자하는 경영진의 의견입니다.
HTML5 개발은 기본적으로 웹 개발 방법론에 따르며, 놀라운 실제 개발 환경을 갖추고 있습니다. 반복하지만, 본질적인 문제는 웹에 관련된 오해입니다. 어디에나 똑같이 보이고 똑같이 동작하는 제품을 개발하는 것이 아닙니다. 그것은 웹 본래의 강점을 빼앗으려하는 생각입니다. 진정한 웹 애플리케이션은 어떠한 환경에서도 동작하면서 주요 플랫폼에서 더 뛰어난 성능을 발휘하는 제품입니다. 따라서 개발 환경은 모든 것을 가능하게 하는게 아니라 일련의 도구라는 것입니다. 무엇을 개발하느냐에 따라 그 중에서 원하는 만큼 선택할 수 있습니다.
웹 기반 미디어가 큰 성공을 거두고있는 것은 개발자가 아니더라도 자유롭게 콘텐츠를 공개하기 때문입니다. 블로그, 플랫폼, CMS 또는 OS에 포함 된 간단한 텍스트 편집기를 사용하여 HTML 페이지를 쓸 수 있습니다. 개발자로서 경력을 쌓을수록 마음에 드는 도구를 많이 찾아서 익숙해지며 효율성을 높여 갈 수 있겠지만, 하나의 멋진 개발 도구라는 것은 존재하지 않습니다. Visual Studio 및 Eclipse와 같은 통합 개발 환경 (IDE)을 좋아하는 개발자도 있고, Dreamweaver와 같은 WYSIWYG 스타일 편집기를 찾는 사람들도 있습니다. 단지 웹 개발자의 대부분은 텍스트 편집나 커멘드 모드를 사용하기에 즐기는 것으로 Jedit에서 Vim, Emacs에 이르기까지 모두 실용적인 도구이며, 실제로 많은 개발자가 일상적으로 사용하고 있습니다.
디버그 및 테스트 도구도 최근에 큰 혁신을 이끌고 있으며 웹 브라우저 내에서 이미 다양한 디버깅 환경과 테스트 환경을 겸하고 있습니다. 개발 변경 사항을 실시간으로 확인하고 직접 편집 가능한 Firebug 기능을 비롯하여, Opera는 Dragonfly, Safari와 Chrome은 자체 개발 도구를 제공하며 이제 모든 브라우저 개발자 기능이 다수 탑재되어 있습니다. Firefox 새로운 개발 도구 역시 단순한 디버깅 환경을 넘어 그 자체로 개발자가 자신의 필요에 따라 확장 가능한 도구로 설계하고 있습니다.
최근에는 원격 디버거 기능까지 제공합니다. 즉 개발자는 자신의 개발 시스템에서 모바일 단말기에서 실행되는 응용 프로그램을 직접 변경합니다. 스마트폰 용으로 개발하고 이를 단말기에 전송하여 설치하고 테스트하고 오류를 찾는 작업을 반복 할 필요가 없습니다. 따라서 개발 시간이 크게 단축됩니다.
새 창에서 보기
Firefox의 원격 디버거 기능
비주얼 기능을 제공하기를 원하는 개발자가 증가하고 있는데, Adobe가 최근 Edge 제품군을 공개했습니다. 이것은 WYSIWYG 스타일의 HTML5 앱 개발을 실현하는 도구와 서비스 제품으로서 예를 들면, Photoshop에서 드래그 앤 드롭으로 이미지를 배치하는 것도 가능합니다. Edge Inspect는 여러 단말기에서 동시 테스트를 간소화하고 PhoneGap Build를 사용하면 HTML5 앱을 iOS와 Android 용 네이티브 애플리케이션으로 패키징 할 수 있습니다.
배포와 패키지에 관해서는 Google이 최근 Yeoman라는 프로젝트를 공개했습니다. 이것은 웹개발자가 응용 프로그램으로 패키지 배포하는 수고를 크게 줄이기 위해고속 동작을 실현하는 기능까지 모두 갖추고 있습니다. 결국 HTML5는 웹 자체가 플랫폼 중립적이기 때문에 정해진 개발 환경이라는 것은 없습니다. 자신에게 가장 적합한 도구를 선택하면 되는 것입니다.
5. 네이티브 앱이 하는 것을 못한다!
HTML5 관련된 오해의 또 하나는 특정 플랫폼에 맞추어 개발된 앱과 실제로 비교하는 것입니다.주로 네이티브 앱으로 할 수 있는데, HTML5로 못하는 것을 나열하는 것인데 사실 그 반대도 많습니다.
- 플랫폼 독립적 – HTML5 응용 프로그램은 모바일, 태블릿, 그리고 데스크톱에서 실행할 수 있으며, iOS와 Android에 대응하는 네이티브 코드로 변환 할 수 있습니다. 그 반대는 불가능합니다.
- 웹을 통한 공유 – HTML5 웹앱은 URL을 가지고 있기 때문에, 웹을 통해 공유하거나 웹 검색에서 찾을 수도 있습니다. 앱스토어에만 배포를 한정할 필요가 없습니다. 웹 사이트를 홍보하는 것과 같은 방법으로 많은 사람들이 여러분의 앱과 서비스를 링크하면 그에 따라 웹 검색 순위가 올라 쉽게 찾을 수 있습니다.
- 멀티 벤더 표준 기반 기술 – HTML5는 현재 웹 산업을 형성하고있는 다양한 기업의 공동 성과이며, 개발자가 불만을 가지는 방향으로 기울 수 있는 단일 기업에 의해 규정 된 표준 사양이 아닙니다.
- 풍부한 개발자 생태계 – 최근 웹 개발에 어떤 식 으로든 관여 한 사람들은 누구나 앱을 개발 할 준비가 되어 있습니다. 매우 큰 개발자 생태계를 가지고 있습니다.
- 소비 및 개발 도구가 동일 – 필요한 것은 텍스트 에디터와 웹 브라우저만 있으면됩니다.
- 부분 업데이트가 가능 – 네이티브 응용 프로그램을 업데이트하려면 전체 응용 프로그램을 다시 다운로드해야합니다 (예를 들어 Angry Birds의 새로운 버전은 23MB 있고 그것을 3G로 연결하여 다운로드하는 사람도 있습니다.) HTML5 앱이라면 필요한 만큼의 데이터를 사용해 오프라인에 저장할 수 있고, 게다가 업데이트도 훨씬 쉽습니다.
- 간단한 기능 업그레이드 – 네이티브 애플리케이션은 설치시 하드웨어에 대한 접근 권한을 요구하고 나중에 그것을 변경 할 수 없습니다. 모든 응용 프로그램이 미리 다양한 권한을 요구해 오는 것은 그 때문입니다 (물론 개인 정보 보호 및 보안에 관한 위험합니다). HTML5 애플리케이션은 하드웨어나 데이터에 대한 접근 권한을 필요한 때 업데이트 할 수 있습니다.
- 다양한 환경에 적응 – HTML5 애플리케이션의 반응형 디자인을 이용하면 소스 코드를 변경하지 않고, 다양한 스크린 환경에 최적화 된 사용자 경험을 제공 할 수 있습니다. 데스크톱에서 스마트폰이나 태블릿에 각각 별도의 애플리케이션을 설치하지 않고도 원활하게 이동할 수 있습니다.
한번 네이티브 응용 프로그램에서 이런 일이 가능한지 생각해보십시오.
6. 폐쇄적 하드웨어 플랫폼을 깰 수 있나?
HTML5를 개발자들이 아직 확실한 선택 하지 못하는 이유는 바로 하드웨어로의 접근의 폐쇄성 문제가 가장 클 것입니다. iOS 단말기에서는 WebKit 이외의 엔진을 탑재 한 브라우저의 제공이 허용하지 않고, 카메라와 주소록, 진동, 통화, 문자 메시지에 대한 접근도 HTML5에 허용하지 않습니다. 사실 이런 기능이야말로 개발자에게 모바일 단말기로 할 수 있는 재미있는 것으로 만들어 주는 필요한 기능이라고 할 수 있습니다.
이러한 문제를 해결하기 위해 Mozilla는 일부 기업과 공동으로 특별한 API를 개발하고 표준화된 방법으로 단말기에 접근 방법을 정의했습니다. 이것이 Web API 라는 것입니다. 이 API를 사용하면 모든 브라우저가 하드웨어에 대한 접근 권한을 안전하게 얻을 수 있게 됩니다.
Web API를 구현한 최초의 운영 체제로서 Firefox OS는 내년에 단말기가 출시 될 예정입니다. Firefox OS는 네이티브 애플리케이션과 마찬가지로 하드웨어에 대한 접근 권한이 있는 HTML5 애플리케이션을 제공 할 수 있습니다. 개발자는 하드웨어에 직접 접근 할 수 있으며, 보다 빠르고 중요한 응용 프로그램을 개발할 수 있습니다. 일반 사용자에 대한 혜택은 단말기가 매우 싸지게 되는데, Firefox OS는 최신 Android에 업그레이드 할 수 없는 매우 낮은 사양의 하드웨어에서도 작동합니다.
수익화 프로그램에 대해서는 Mozilla 자체 HTML5 앱 전용 마켓 플레이스를 개설하려고 노력하고 있습니다. 여기에서는 단지 HTML5 앱을 등록 할 뿐만 아니라 웹 검색에서도 찾을 수 있습니다. 일반 사용자가 응용 프로그램을 쉽게 구입할 수 있도록 이통사와 제휴하여, 통화료와 함께 청구하는 방법도 준비 중 입니다. 이는 신용 카드가 없는 사용자도 앱을 구매하고 모바일 개방성의 혁신에 참여할 수 있습니다.
7. HTML5은 정말 유용한가?
전체적으로 보면 HTML5는 빠르게 성장하고 있으며, 앱 개발자에게 매우 재미있고 신뢰할 수있는 플랫폼으로 자리 잡고 있습니다. 제거해야 큰 장벽은 하드웨어 접근에 대한 Web API의 표준화 작업과 이러한 단말기의 보급, PhoneGap 같은 도구는 기존 생각했던 것보다 훨씬 문제는 작아지고 있습니다.
위에서 언급한 HTML5의 장점은 플랫폼 별로 별도 개발 코드를 쓰는 시간을 보내는 대신 HTML5 앱 개발에 착수할 충분한 이유가 될 것입니다. 비록 제공하고 싶은 것이 하나의 특정 플랫폼으로 HTML5를 선택할 필요가 없다고 해도 HTML5 자체에 문제를 두는 것은 맞지 않습니다.
HTML5 개발 플랫폼과 웹 브라우저는 독립적인 것입니다. 그러한 생각을 받아 들일 수 없는 경우, 그 가능성에 스스로 제약을 부여하게 됩니다. 역사적으로 폐쇄적인 플랫폼은 항상 나타났다 사라졌지만, 웹 만큼은 아직 강력함을 더하면서 여전히 전 세계 수 많은 사용자에게 제일 빠르게 도달할 수 있는 방법을 제공합니다. 누군가에 허가를 요청하거나 복잡한 개발 환경을 설치하지 않고도 개발을 시작하는 것을 가능합니다.
이것이 많은 사람들이 웹에서 무언가를 시작해 온 이유이며, 지금도 그것은 변함이 없습니다. 웹 기술 세계는 모든 것이 열려 있습니다. 자, 여러분도 HTML5 앱 개발에 도전 해 봅시다.
3 댓글