❓ 웹 앱이란, 데스크톱 또는 모바일 디바이스의 브라우저에서 엑세스할 수 있는 앱을 말한다. 사용자가 웹 브라우저에서 지원하는 조작 기능만 사용할 수 있다. 웹 애플리케이션에 풍부한 설계 요소가 적용되더라도, 디바이스 기능에 엑세스할 수 없다.
❓ 네이티브 앱이란, Android 또는 IOS 같은 특정 구체적인 플랫폼만을 위해 만들어진 응용 프로그램이다. 즉, 디바이스에 다운로드하여 설치할 수 있는 앱을 말한다. 네이티브 앱에서는 사용자가 디바이스의 내부 하드웨어 및 운영 체제를 조작할 수 있다.
[개발]
Android 모바일 앱 같은 경우는 Kotlin 또는 Java로 만들 수 있고, iOS는 Swift 또는 Objective C로 만들 수 있다. 이를 통해 앱 실행 속도가 빠르고 유용한 API 지원도 받을 수 있다. 하지만, 이들이 다른 운영체제에서 실행되기 위해서는 시간, 노력 돈이 많이 든다.
핸드폰에 기본적으로 제공되는 앱들(계산기, 캘린더, etc..)은 모두 네이티브로 개발되어 있다.
요즘에는 크로스 플랫폼 프레임워크(Cross-platform frameworks)의 인기가 급증하고 있다. 크로스 플랫폼 프레임워크는 모바일 앱을 만들 때, 소스코드는 하나로 관리하고 두 개의 OS에 모두 배포할 수 있는 프레임워크다.
Google에서 만든 Flutter와 Facebook이 만든 React Native가 이에 해당한다.
❓ 하이브리드 앱이란, 네이티브 앱과 웹 앱을 결합한 것이라고 보면 된다. JavaScript, HTML, CSS와 같이 잘 알려진 언어와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 앱을 빠르게 만들 수 있다는게 장점이다.
비용과 시간을 절약할 수 있고, 기본 API 기능 사용 가능하며, 유지보수가 쉽다는 장점이 있지만, 같은 코드를 베이스로 하기 때문에, Android, iOS에서 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수 있는 단점이 있다.
쉽게 말해, 기기에 대한 자원은 사용하고 싶은데,, 모든 것을 native로 하기에는 많은 비용이 요구되는 상황에서는 Hybrid App을 사용할 수 있다. 또한, 하이브리드 앱의 경우 잦은 수정 및 업데이트 상황이 있을 때, 웹으로 구현되어 있는 페이지만 간단하게 수정하면 사용자는 별 다른 동작 없이 새롭게 API 요청만 하면 변경된 정보를 확인할 수 있지만, 네이티브 앱으로 구현되어 있다면 간단한 텍스트 수정이라도 APP 업데이트를 시켜주어야 한다.
하이브리드 앱은 특정 유형의 네이티브 앱이다. 네이티브 앱과 마찬가지로 사용자가 앱 스토어에서 하이브리드 앱을 다운로드하고 설치할 수 있다. 하지만, 네이티브 앱과 하이브리드 앱의 내부 구조는 매우 다르다. 내부적으로 하이브리드 앱은 웹 앱에 가깝다고 할 수 있다.
네이티브 앱의 경우 개발자가 네이티브 개발 언어로 모든 앱 기능을 다시 작성하고 다시 설계해야 한다. 하이브리드 앱의 경우 앱 기능을 단일 코드베이스로 작성할 수 있다. 이후에, 다음 코드를 간단한 네이티브 앱 셸 또는 컨테이너에 래핑할 수 있고, 이 컨테이너를 사용하면 하드웨어, 캘린더, 알림 등 모바일 디바이스의 기능을 활용할 수 있다.
하이브리드는 네이티브 앱과 동일한 성능 및 사용자 경험을 제공하지만, 비용은 더 적게 사용할 수 있다. 또한, 개발자들에게는 익숙한 JavaScript, CSS, HTML과 같은 언어와 기술을 사용해 앱을 구축할 수 있다는 장점도 있다.
사용 사례에 따라 적합한 앱 유형을 선택해야 한다. 무조건 적으로 좋은 앱 유형은 따로 있지 않다.
디바이스 내부의 자원에 접근하면서도 수시로 변경사항이 있다면 하이브리드 앱을 추천하고,
시간이 오래 걸리고 업데이트를 자주 해야 하더라도, 시간과 비용에 여유가 있고 대규모 프로젝트를 구성하면서, 성능을 최적화 하고 싶다면 네이티브 앱을 추천한다.
[참고]
네이티브 앱(Native App) vs 하이브리드 앱(Hybrid App) vs 프로그레시브 웹 앱(PWA) – 정의와 장단점
https://www.hanl.tech/blog/native-vs-hybrid-vs-pwa/
웹 앱, 네이티브 앱, 하이브리드 앱의 차이점은 무엇인가요?
https://aws.amazon.com/ko/compare/the-difference-between-web-apps-native-apps-and-hybrid-apps/
아주 잘 작성된 글이었습니다.