목차
평범한 현대인이 하루에 사용하는 앱은 몇개나 될까요? 저는 적어도 10가지는 되는 것 같아요. 하지만 앱이 모두 같은 방식으로 개발되는 것은 아니라는 사실, 알고 계시나요? 한 때는 앱을 개발하기 위해서는 안드로이드 개발자, iOS 개발자와 같이 각 OS에서 지정한 언어와 도구를 써서 앱을 개발하는 전문 영역을 가진 개발자들을 구인해야 했습니다. 하지만 요즘에는 꼭 그렇지만은 않습니다. 사용자는 어떤 방식으로 앱이 개발되었는지 전혀 알 필요가 없지만, 사실 뒷단에서는 제각각 다른 방식으로 만들어져 있는데요. 이와 관련하여 모바일 애플리케이션을 개발하는 방식에 대한 용어를 알아봅니다.
네이티브 앱(Native App)
모바일 기기에는 PC 처럼 운영체제가 설치되어 있습니다. 구글이 제공하는 안드로이드 OS, 애플의 iOS가 그 예시죠. 각 회사에서는 해당 OS에서 작동하는 앱을 만들기 위한 언어와 도구를 지정해서 생태계를 구축했습니다. 안드로이드 개발을 위한 코틀린, iOS 개발을 위한 스위프트 등이죠. 이렇게 각자의 OS의 맞게 구축한 앱은 각자의 환경에 최적화되어 작동하도록 개발됩니다. 따라서 GPS, 카메라 등 모바일 기기의 장치들을 세밀하게 이용해야하는 어플, 혹은 구동 속도 등 높은 사양을 필요로 하는 앱들은 네이티브 앱 방식으로 개발됩니다.
하지만 이러한 개발 방식의 단점은 똑같은 앱을 OS 맞게 별도의 앱으로 개발해야하는 단점이 있습니다. 또한 필요한 기술을 능숙하게 사용할 줄 아는 전문 개발자를 찾기가 어렵다는 단점도 있죠. 또한 기능 업데이트를 위해서는 앱 마켓의 심사를 거쳐 새로운 버전을 출시해야하는 번거로움도 존재합니다.
크로스플랫폼 앱(Cross Platform App)
한 가지의 앱을 두 개의 운영체제에 맞게 개발해야하는 네이티브 앱의 단점을 해소하기 위해 크로스 플랫폼이 등장했습니다. 크로스플랫폼이란 하나의 코드로 안드로이드와 iOS에서 모두 작동이 가능한 앱을 만드는 프레임워크입니다. 구글의 플러터, 페이스북의 리액트 네이티브 등이 해당 프레임워크인데요. 예를들어 리액트 네이티브는 JS를 통해 기능을 구현하면 각 OS에 맞는 코드로 컴파일되어 앱으로 구동이 가능합니다. 하지만 네이티브 앱보다는 성능이 떨어진다는 단점, 어플 업데이트를 위해서는 여전히 심사를 거쳐야한다는 단점이 있습니다.
웹 앱(Web App)
웹 앱은 반응형 혹은 적응형 웹 개발 방식을 사용해서 모바일 기기에서 사용하는 웹사이트 입니다. 앱스토어와 같은 앱 마켓에서 설치하는 방식이 아닌 사파리와 같은 모바일 브라우저에서 주소를 통해 접속할 수 있습니다. 엄밀히 말하면 애플리케이션이 아닌 웹 사이트인 셈입니다. 그렇기 때문에 웹 개발 기술만 있으면 쉽게 모바일용 앱을 만들 수 있으며, 앱스토어를 통해 출시하는 것이 아니기 때문에 기능 업데이트를 하고 싶으면 사이트의 기능을 변경하면 됩니다. 하지만 브라우저에서 작동하는 한계 때문에 구현할 수 있는 기능이 한정되고, 기기의 여러가지 기능, 성능을 활용하는데는 한계가 있습니다.
하이브리드 앱(Hybrid App)
하이브리드 앱은 웹 앱을 기반으로 만들어지지만, 설치 가능한 애플리케이션의 형태로 제공되어 추가 기능을 제공할 수 있는 개발 방식입니다. 네이버의 모바일 사이트에서는 음성 검색 기능이 제공되지 않지만, 네이버 어플에서는 음성 검색 기능이 제공되는 등 모바일 웹에서 제공하지 않는 기능들을 활용할 수 있습니다.
하이브리드 앱의 경우 네이티브 또는 크로스 플랫폼 방식으로 앱의 뼈대를 만듭니다. 그리고 그 안에 브라우저 역할을 하는 ‘웹 뷰’라는 요소를 만들어서 웹사이트 화면을 보여줍니다. 카메라, 푸시 알림, 마이크 등 기기를 활용하는 기능들은 뼈대가 되는 네이티브 앱 단에서 수행되도록 활용합니다.
이러한 하이브리드 앱의 경우 웹사이트에 활용되는 기능을 업데이트할 때는 웹 사이트만 바꾸면 되기 때문에 업데이트 심사를 받지 않아도 되고, 웹 개발 기술을 활용할 수 있기 때문에 개발 및 유지 관리 비용이 아주 적다는 장점이 있습니다.
프로그레시브 웹 앱(Progressive Web App)
앞서 웹 앱의 경우 브라우저 앱에서 제공하는 기능만 활용할 수 있기 때문에 활용할 수 있는 기능의 한계가 있다고 말했습니다. 하지만 브라우저에서 제공하는 기능이 점차 늘어나고 있고, 이러한 흐름에 맞춰 PWA라고 불리우는 프로그레시브 웹 앱이 등장했습니다.
PWA 역시 웹 앱과 마찬가지로 모바일 웹사이트 입니다. 하지만 모바일 기기의 바탕화면에 다른 어플들과 같이 아이콘으로 설치를 할 수 있고, 푸시 알림을 활용할 수 있는 등 애플리케이션의 기능 또한 활용할 수 있습니다. 하지만 PWA 역시 브라우저를 사용함에 따라, OS 개발사가 허용하는 범위에 맞춘 기능만 사용할 수 있기 때문에 여전히 한계가 있다고 할 수 있습니다.