네이티브앱 vs 웹앱 vs 하이브리드 앱 ... 그게뭔데?
너희 앱은 하이브리드잖아, 혹시 네이티브 앱이니?
또다시 외계어같은 말이 나의 귀를 관통한다. 앱이면 앱이지 네이티브는 뭐고, 하이브리드는 무엇이란 말인가. 하이브리드 자동차가 무엇인지는 안다. 두뇌를 풀 가동 시켜본다. 하이브리드... 뭔가 2개가 뒤섞인 느낌이다. 그러고 보니 지난번에 아는 분이 구매한 하이브리드 자동차도 생각난다. 그런데 도대체 뭐랑 뭐를 섞은 것이란 말인가?
앱은 스마트폰에서 실행되는 프로그램을 말한다. 그러다 보니 크게 2가지 방식이 있다. 앱의 기능을 중점적으로 사용하는 네이티브 앱이 있고, 사실은 모바일웹과 비슷하지만 앱의 모습을 하고 있는 웹앱이 있다.
네이티브앱은 우리가 생각하는 워드, 파워포인트와 같은 프로그램을 생각하면 쉽다. 안드로이드, iOS 의 운영체제에서 그 기능을 이용해 만든 앱이다. 그러다 보니 안드로이드, iOS에서 쓰이는 프로그래밍 언어로 만들어진다. (안드로이는 Kotlin, iOS는 swift) 이렇게 해당 OS에 따라 만들어지다 보니 당연하게도 빠르기도 하고, 스마트폰의 기능을 잘 활용할 수 있다. 그러나 크나큰 단점이 있으니 바로 비용이 많이 든다는 것이다. 운영체제별로 개발해야 하고, 개발도 오래걸리며, 심지어 앱을 업데이트 시켜야 해서 심사까지 받아야 한다.
이와 대척점에 있는 방식이 웹앱이다. 웹앱은 앱처럼 생긴 웹페이지라고 생각하면 쉽다. 사실은 인터넷 페이지지만, 앱처럼 보이게 꾸며놓은 것이다. 개발할 때도 웹페이지에 쓰이는 html, css, js 삼형제를 쓴다. 웹앱의 크나큰 장점은 운영체제별로 만들 필요도 없고, 개발도 비교적 빠르다! 그러나 역시 크나큰 단점이 있으니 바로 스마트폰의 기능을 활용하기 어렵다는 것이다. 앱의 탈을 쓴 웹페이지 이기 때문에 통신 장애에 영향을 받을 수도 있다. 그리고 무엇보다... 꼭 앱이어야 해? 라는 생각이 들 수밖에 없다.
이렇게 장, 단점이 명확한 두 가지 개념이 있을 때는 국룰이 있다. 짬짜면처럼 두 개념을 쓰까버리는 것이다. 그래서 등장한 것이 바로 하이브리드 앱이다.
변경이 많은 콘텐츠는 웹 앱으로, 변경이 적고 운영체제의 기능을 사용해야 하는 껍데기는 네이티브 앱으로 감싼 것이 바로 하이브리드앱이다.
콘텐츠를 변경할 때는 웹앱의 장점인 빠른 개발이 가능하고, 스마트폰의 기능을 사용하는 네이티브의 장점도 가질 수 있다. 네이티브 쪽에 변경이 있을 경우야 심사를 받고 배포해야 하지만, 웹 쪽만 변경하면 심사를 안 받고 배포할 수도 있다. 크게 아쉬운 점이 있다면 바로 안드로이드/iOS에 최적화된 UX설계가 어렵다는 점이다. 사실 이는 모바일 웹의 단점이기도 하다.
내가 일하는 금융IT는 굉~장~히 앱을 변경하는 것이 쉽지 않다. 계정계 시스템을 변경하는 것은 거의 불가능에 가깝다 보니, 이를 보여주는 화면단에서 이 전문 저 전문을 조립하거나, 보여주는 방식을 바꾸거나 하는 것이 주가 된다. 그렇다고 해서 네이티브 기능을 버릴 수는 없다. 생체인증도 해야하고, 결제를 위해서는 카메라 기능을 활용해 QR도 찍고, 때로는 앱 내의 정보에 접근할 일(연락처 등)도 있으니... 내가 관리하는 앱은 사실 하이브리드앱 이었던 것이다!!
금융앱의 벤치마크 대상 1호 토스앱. 이 토스앱은 그럼 무슨 방식일까? 위의 세 가지 방식 중에서는 하이브리드앱의 방식을 택하고 있는 것으로 알고 있다. 네이티브의 기능을 사용하지만, 웹앱의 방식으로 세부 기능을 제공하고 있다! 그러다보니 변화가 굉장히 빠르게 이뤄지고 있었던 것이다. 여기서 이런 생각이 든다. 어? 우리도 하이브리드인데, 왜이렇게 사용성이 아쉽고 느리지? 그건 바로 뒷단이 다르기 때문이다. 위에서 슬쩍 말한 계정계라는 거대한 장벽이 변화를 어렵게 한다. 이에 대해서는 다른 글에서 추가적으로 다루겠다.
이번 포스팅을 요약하면 다음과 같다. 운영하는 앱이 있다면 자신의 앱은 어떤 방식인지, 없다면 이런 저런 앱을 써 볼 때 한번 어떤 방식인지 생각해 보자.
네이티브 = 앱의 기능을 기반으로 하는 앱
웹앱 = 앱의 탈을 쓴 모바일웹페이지
하이브리드앱 = 웹앱과 네이티브의 장점을 합쳐 만든 앱
참고자료