첫 아이폰이 2007년 6월에 출시된 후 폭발적인 변화와 성장을 겪어온 모바일 앱 시장. 오늘 현재에는 다양한 방법으로 모바일 앱을 개발할 수 있다. 문제는 – 어느 방법을 선택할 것인가

모바일 앱을 개발할 때 어떤 솔루션이 가장 적합할까를 결정하려면 먼저 그 앱이 어떤 종류의 기능이 필요한지, 어느 정도 시간과 경제적 투자가 가능한지, 대상 사용자는 어떤 계층 일지 미리 따져 보는 것이 필요하다. 우선 전반적 선택 종류들을 요약해보면:

  • 앱의 성능이나 실행될 장치의 하드웨어 방면 기능이 매우 필요한 경우: 네이티브 앱(Native App) 선택
  • 쇼핑몰 같이 사용자의 방문이 많을 수 있고 웹과 모바일 둘 다 되는 앱을 구상 중인 경우: 프로그레시브 웹 앱(PWA)을 선택
  • 웹 개발에 익숙하고 빠른 기간 내에 앱을 구축하고 싶은 경우: 하이브리드 앱(Hybrid App) 선택

이제 각각의 특징과 장단점을 알아보자.


네이티브 앱(Native App)

Android 또는 iOS 같은 어떤 구체적인 플랫폼만을 위해 만들어진 응용 프로그램을 네이티브 앱(Native App)이라고 한다. Android 모바일 앱 개발의 경우는 Kotlin 또는 Java로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다. 덕분에 앱의 실행 속도가 빠르고 유용한 API의 지원도 받을 수 있다. 반면 다른 운영체제에서도 실행되기 위해서는 시간도 노력도 돈도 많이 드는 단점이 있다.

예) 계산기, 노트 등 폰에 기본적으로 내장되어있는 앱들, 대부분의 게임

장점

  • 사용자에게 가장 빠르고 안정적이며 반응이 빠른 환경을 제공
  • 다양한 네이티브 기능을 쉽게 활용: 예를 들자면 카메라, 마이크(microphone), GPS 및 스와이프 제스처(swipe gesture)

단점

  • 둘 이상의 코드 베이스: 네이티브 앱은 Android와 IOS의 호환이 되지 않기 때문에 별도로 제작
  • 더 많은 비용이 들고 빌드하는 데 시간이 더 오래 걸림

언제 유용한가?

  • 3D 게임이나 애니메이션 제작에
  • 어떤 장치의 특별한 기능을 사용하고 싶을 때
  • 앱 기능이 많고 상당히 복잡한데 그 성능이 정확히 나오게 하고 싶을 때

한가지!!
최근 주목할 것은, Java나 Swift/Objective C 통한 네이티브 앱 개발 외에, 크로스 플랫폼 프레임 워크(Cross-platform frameworks)의 인기가 증가하고 있다. Google이 만든 Flutter와 Facebook이 만든 React Native가 현재 크로스 플랫폼 앱 개발 시장의 선두 주자인데, 더 자세한 내용은 따로 한 글 올릴 예정.


하이브리드 앱(Hybrid app)

하이브리드 앱은 네이티브 앱과 웹 앱의 기능을 결합한 것이라고 보면 된다. JavaScript, HTML 및 CSS와 같이 잘 알려진 언어와 프레임 워크를 사용하여 다양한 플랫폼에서 사용할 수 있는 하이브리드 앱을 빠르게 만들 수 있다. 비용도 시간도 덜 들고 유지 보수도 쉽고 기본 API 기능도 사용 가능하나 오프라인(offline)으로는 작동하지 않고 똑같은 코드를 베이스로 하기 때문에 안드로이드나 아이폰 등 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수도 있다.

예) 인스타그램, Gmail, 금융기관 앱 등

장점

  • 하나의 코드 베이스: 하나의 앱을 빌드하고 약간 조정하여 두 플랫폼에서 모두 작동, 그러므로 시간과 돈을 절약
  • 하이브리드 앱 개발자는 종종 네이티브 애플리케이션 개발자보다 저렴
  • 손쉬운 확장: 네이티브 기능 액세스 가능

단점

  • 성능(Performance) 문제가 가장 큰 단점
  • 크로스 플랫폼 개발과 UX의 어려움: 하이브리드 플랫폼이 각 네이티브 플랫폼에서 적절하게 실행되도록 하려면 일반적으로 상당한 노력이 필요; 경우에 따라 총비용이 네이티브 앱의 비용과 맞먹을 수 있음

언제 유용한가?

  • 다양한 플랫폼(모바일이나 웹)을 통한 사용자층이 넓을 때
  • 내용을 기본으로 한 간단한 프로젝트인 경우; 애니메이션도 없고 복잡한 기능도 필요 없을 경우
  • 시간은 촉박한데 여러 디바이스에서 실행돼야 하는 앱을 만들어야 할 때
  • 프로젝트 아이디어가 있는 경우 가장 간단하게 테스트해보고 싶을 때

프로그레시브 웹 앱(PWA: Progressive Web App)

PWA는 하이브리드 앱과 비슷하지만 약간 다르다. 기본적으로 사용자들에게 네이티브 앱의 느낌을 주면서도 웹 브라우저에서 바탕화면에 바로가기를 추가하여 특별한 다운로드와 인스톨 과정 없이 기본 앱처럼 사용할 수 있다는 것이 특징이다. 오프라인에서도 사용할 수도 있고 알림 메시지도 받을 수 있고 iOS보다 안드로이드가 훨씬 용이하긴 하지만 디바이스들의 하드웨어적인 기능(카메라나 GPS 같은)을 사용할 수도 있다.

PWA는 각 플랫폼에 최적화된 사용자 경험을 기반으로 하며, PWA만을 위한 언어나 프레임워크 또는 PWA만을 위한 전문 개발자도 필요가 없다. 리액트(React)나 앵귤러(Angular)만 있으면 만들 수 있다.

장점

  • 서비스 워커(Service Worker)를 사용하여 오프라인이나 느린 네트워크에서도 작동
  • 서비스 워커 업데이트 덕분에 항상 최신의 상태로 유지
  • HTTPS를 통해 제공되므로 안전성 확보
  • 다양한 플랫폼에서 실행 가능
  • 네이티브 앱보다 훨씬 저렴하고 빠르게 개발
  • 다양한 화면 크기 수용 – 훌륭한 반응형(데스크톱, 모바일, 태블릿 등 모든 폼 팩터에 맞음)
  • 네이티브 앱과 비슷하기 때문에 사용하는데 어려움이 없음
  • 참을성 있게 설치해야 할 인스톨 단계가 없음
  • 검색 엔진에서 검색이 가능

단점

  • 오래된 브라우저들은 PWA를 지원하지 않음
  • iOS에서는 성능이 약하고 애플의 장치에 대한 지원이 적음
  • 앱 스토어에서는 사용할 수 없으므로 마케팅 효과 떨어짐
  • 배터리 전력 소모가 큼

언제 유용한가?

  • 기본 앱의 기능이 있는 다중 플랫폼 앱 필요
  • 많은 사용자들이 다양한 채널을 통해 동시 접속할 때도 동일한 서비스를 제공하고자 할 때
  • 강력한 전자 상거래 서비스를 제공할 때

자 이제 어떤 종류의 앱이 더 적합한지 결정이 되었다면 다음 단계로 어떤 과정으로 각각의 앱이 만들어지는지 알아볼 시간...

다음에 또.

profile
The Future is OPEN.

6개의 댓글

comment-user-thumbnail
2021년 3월 25일

좋은 글 감사합니다. 네이티브는 줄어드게 될가요?

1개의 답글
comment-user-thumbnail
2022년 3월 19일

하이브리드앱은 오프라인에서는 작동하지 않는다는 말이 구체적으로 어떤 말씀인가요?

1개의 답글