Web App VS Native App VS Hybrid App

문상우·2023년 7월 19일
0
post-thumbnail

Web App ?

❓ 웹 앱이란, 데스크톱 또는 모바일 디바이스의 브라우저에서 엑세스할 수 있는 앱을 말한다. 사용자가 웹 브라우저에서 지원하는 조작 기능만 사용할 수 있다. 웹 애플리케이션에 풍부한 설계 요소가 적용되더라도, 디바이스 기능에 엑세스할 수 없다.


Native App ?

❓ 네이티브 앱이란, Android 또는 IOS 같은 특정 구체적인 플랫폼만을 위해 만들어진 응용 프로그램이다. 즉, 디바이스에 다운로드하여 설치할 수 있는 앱을 말한다. 네이티브 앱에서는 사용자가 디바이스의 내부 하드웨어 및 운영 체제를 조작할 수 있다.

[개발]

Android 모바일 앱 같은 경우는 Kotlin 또는 Java로 만들 수 있고, iOS는 Swift 또는 Objective C로 만들 수 있다. 이를 통해 앱 실행 속도가 빠르고 유용한 API 지원도 받을 수 있다. 하지만, 이들이 다른 운영체제에서 실행되기 위해서는 시간, 노력 돈이 많이 든다.

핸드폰에 기본적으로 제공되는 앱들(계산기, 캘린더, etc..)은 모두 네이티브로 개발되어 있다.

장점

  • 사용자에게 안정적이고 반응이 빠른 환경을 제공한다.
  • 다양한 네이티브 기능을 쉽게 활용할 수 있다. (하드웨어 적인 부분 및 제스처)

단점

  • Android, iOS는 서로 호환되지 않기 때문에, 각각 개발해야 한다.
  • 비용이 많이 들고 빌드하는데 시간이 오래 걸린다.

요즘에는 크로스 플랫폼 프레임워크(Cross-platform frameworks)의 인기가 급증하고 있다. 크로스 플랫폼 프레임워크는 모바일 앱을 만들 때, 소스코드는 하나로 관리하고 두 개의 OS에 모두 배포할 수 있는 프레임워크다.

Google에서 만든 Flutter와 Facebook이 만든 React Native가 이에 해당한다.


Hybrid App ?

❓ 하이브리드 앱이란, 네이티브 앱과 웹 앱을 결합한 것이라고 보면 된다. JavaScript, HTML, CSS와 같이 잘 알려진 언어와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 앱을 빠르게 만들 수 있다는게 장점이다.

비용과 시간을 절약할 수 있고, 기본 API 기능 사용 가능하며, 유지보수가 쉽다는 장점이 있지만, 같은 코드를 베이스로 하기 때문에, Android, iOS에서 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수 있는 단점이 있다.

장점

  • 하나의 앱을 빌드하고, 약간 조정하여 두 플랫폼에서 모두 작동이 가능하다(하나의 코드 베이스)
  • 하이브리드 앱 개발자는 네이티브 앱 개발자보다 저렴하다 (장점,,?)
  • 네이티브 기능 엑세스가 가능해 확장이 쉽다.

단점

  • 성능이 가장 큰 문제로 자리 잡는다.(느리다)
  • 크로스 플랫폼 개발이 힘들고, UX를 처리하기 힘들다.

쉽게 말해, 기기에 대한 자원은 사용하고 싶은데,, 모든 것을 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/

profile
평범한 대학생의 코딩일기

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

아주 잘 작성된 글이었습니다.

1개의 답글