네이티브 vs 크로스 플랫폼 vs 하이브리드 비교

    모바일로 어플리케이션을 만드는 방법은 크게 네이티브(Native), 크로스 플랫폼(Cross Platform), 하이브리드(Hybrid) 3가지의 방식으로 만들 수 있습니다. 각각의 방식은 무엇이고 어떤 점이 다른지 간단하게 작성해보도록 하겠습니다.

     

    네이티브 vs 크로스 플랫폼 vs 하이브리드 비교


    네이티브 앱(Native App)

    네이티브 앱 방식은 플랫폼(Platform)에 종속된 기술을 뜻하며, 모바일의 운영체제(Operating System, OS)인 안드로이드(Android)와 iOS, 윈도우 모바일(Windows Mobile) 등에 종속되어 개발하는 언어 및 기술들을 뜻하고, OS에 종속된 코드를 네이티브 코드(Native Code)라고 합니다.

     

    네이티브 앱의 장점은 해당 플랫폼의 기술을 최대치로 사용하며, 효과적으로 다루기에 하드웨어를 효율적으로 사용하고 다양한 최신 기술을 이용할 수 있으며 퍼포먼스 역시 뛰어납니다. 그리고 일반적으로 네이티브 개발자들은 하나의 OS만 다루기 때문에 2가지 이상의 플랫폼으로 개발할 필요가 없을 경우, 당연하게도 공부해야 될 범위가 작을 수 있습니다.

     

    안드로이드 개발 방법

    안드로이드로 개발을 하기 위해서는 안드로이드 런타임(Android runtime, ART)에 동작하기 때문에 앱을 개발하기 위해서는 안드로이드에서 동작하는 라이브러리를 사용하며, 언어는 초창기에는 자바(Java)만 사용하다가 현재는 코틀린(Kotlin)을 병행하여 만들고 있습니다.

     

    안드로이드 진영은 자바를 소유하고 있는 오라클(Oracle)과 긴 시간동안 사용료 등으로 많이 싸웠기 때문에 현재는 자바를 기반으로 만든 코틀린을 공식언어로 지정하고 있지만, 아직도 자바로 개발을 하는 분들이 많이 있습니다.

     

    iOS 개발 방법

    자바를 기반으로 돌아가는 안드로이드와 달리 iOS는 코코아 터치(Cocoa Touch) 환경에서 실행되기에 코코아 터치에서 제공하는 라이브러리를 사용하고, 개발언어는 오브젝티브-C(Objective-C)나 스위프트(Swift)를 이용하여 개발하고 있습니다.

     

     

    네이티브 앱의 한계

    순수하게 개발자 입장이라면, 어느 한쪽 진영이 다른 한쪽을 완전히 무너트려 한가지의 언어만 배우는 것이 좋겠지만, 안타깝게도 iOS와 안드로이드는 지금도 안드로이드가 앞선 상태로 꾸준히 유지중이며, iOS, 안드로이드 모두 사용자를 무시할 수 없는 수치이기 때문에 1인 개발자 입장에서는 참 곤란한 상황입니다.

     

    이처럼 네이티브는 개발자에게 2배의 고통을 주기 때문에 초창기에는 하이브리드 앱이라는 방식으로 이를 극복했으며, 최근에는 크로스 플랫폼이라는 기술로 이와 같은 위기를 타계할 수 있는 방법을 제시해주고 있습니다. 

     

    하이브리드 앱(Hybrid App)

    하이브리드 앱의 방식은 초창기 복잡한 네이티브 앱을 대체하기 위해서 고안해낸 방식입니다. 네이티브 앱은 퍼포먼스 측면에서 매우 뛰어나지만, 각 플랫폼 별로 모두 만들게 되면 개발자의 공수가 상당히 많이 필요하며 1인 개발자나 작은 회사의 경우 주 플랫폼을 선정하고 나머지 플랫폼을 포기해야 되는 케이스도 발생하게 됩니다.

     

    하이브리드 앱은 주 컨텐츠를 웹으로 만들고 네이티브 앱의 경우 웹을 컨트롤하여, 최소한의 기능만 익히는 방식으로 진행하게 됩니다. 그래서 웹 개발자가 참여할 수 있고, HTML5의 경우 다양한 기능을 제공하기 때문에 많은 앱에서 초창기에 시도했던 방식입니다.

     

    Hybrid App

     

    현재는 크로스 플랫폼의 발달로 하이브리드 앱은 크로스 플랫폼으로 옮겨진 상태라 보시면 되지만 아직도 작은 앱들은 하이브리드 앱을 고집하는 케이스도 많이 있습니다. (ex: 컨텐츠가 주인 앱)

     

     

    크로스 플랫폼(Cross Platform)

    크로스 플랫폼 앱 개발은 독립된 기술로 다양한 플랫폼에서 구동이 가능한 기술을 뜻합니다. 초창기 크로스 플랫폼은 성능이 네이티브 앱을 따라가지 못했기에 사람들이 사용하기를 꺼려했지만, 최근 기술들은 네이티브 앱 수준에 근접하고 있으며 권장의 단계까지 진행되고 있는 중입니다.

     

    리액트 네이티브(React Native)

    우선 크로스 플랫폼의 상징이라 할 수 있는 리액트 네이티브는 페이스북의 자바스크립트 프레임워크인 리액트(React)를 베이스로 만들어진 프레임워크입니다. 이처럼 리액트 네이티브는 자바스크립트로 개발을 하기 때문에 많은 개발자들이 불필요한 공부를 최소한으로 줄일 수 있어서 혁신적인 크로스 플랫폼이라 불렸습니다.

     

    하지만 리액트는 퍼포먼스 측면에서 한계가 분명히 존재했으며, 가장 최근에 나온 플러터(Flutter)의 위상으로 인해서 자리가 점차 좁혀지고 있습니다.

     

    플러터와 리액트 네이티브의 트렌드 추이

     

    플러터(Flutter)

    구글에서 2017년에 처음 발표한 플러터는 원래는 퓨시아(Fuchsia) 운영체제에서 만들기 위해서 만든 플랫폼이지만, 타 운영체제와 호환성을 고려하다보니 크로스 플랫폼으로 만들어진 케이스입니다.

     

    구글에서 만들어졌기 때문에 우선 안드로이드에서 구동하는 퍼포먼스가 뛰어나며, iOS, 안드로이드는 물론이고 윈도우 앱 개발 macOS용 어플리케이션, 심지어 최근에는 웹 브라우저에서도 구동하게 되면서 진정한 크로스 플랫폼으로 자리잡고 있으며, 가장 빠르게 성장하는 크로스 플랫폼이라 할 수 있습니다.

    반응형

    댓글

    Designed by JB FACTORY