product manager

앱 개발 형식을 정해보자 [코드스테이츠 PMB 10기]

오랑체리 2022. 3. 8. 00:22

내가 사용하는 앱은 모두 종류가 다르다.

  • 모바일 웹
  • 웹 앱
  • 하이브리드 앱
  • 네이티브 앱

그리고 앱을 개발할 때는 단순하게 선호하는 방식을 택하는 것을 넘어 고려해야 하는 부분이 많다. 따라서 오늘은 위에서 정리한 앱의 4가지 형태를 알아보고, 앱 개발 형식을 정하는데 도움이 되고자 한다.

 


네이티브 앱

Android 또는 iOS 같은 어떤 구체적인 플랫폼만을 위해 만들어진 응용 프로그램을 말한다. 네이티브 앱의 가장 큰 특징은 스마트폰의 각 운영체제별로 개발하는 방식이 완전히 다르다는 것이다. 즉, 각 운영체제별로 "우리 운영체제에서 돌아가는 앱을 만들고 싶다면 이렇게 만들어라"와 같은 가이드가 존재하고 있다. 실제로, Android 모바일 앱 개발의 경우는 Kotlin 또는 Java로 네이티브 앱을 만들 수 있고 iOS의 경우 Swift 또는 Objective C로 만들 수 있다.

 

네이티브 앱 예시

장점

  • Android, iOS 기반의 api로 개발하여 속도가 빠르고 안정적이면서 동적인 효과를 구현하기에 좋음. 스마트폰의 다양한 기능들에 대한 접근이 자유롭다.
  • 해당 운영체제가 허용하는 모든 자원과 기능들을 직접 활용할 수 있다. 즉, 스마트폰의 내장 카메라, 센서, 파일 시스템 등과 같이 깊숙한 부분들도 접근 및 활용이 가능하며, 안드로이드나 iOS의 버전이 업데이트될 때마다 그 최신 기능들도 언제든 바로바로 앱에 탑재가 가능하다.
  • 다른 방식에 비해 매우 고퀄리티인 앱을 개발할 수 있다는 것을 의미한다.

단점

  • 기능이 좋고 안정적이지만 안드로이드와 iOS에서 서비스하기 위해 개발비용과 유지 비용, 기간, 관리 등의 문제가 있다.
  • 배포 과정 자체에도 많은 어려움에 부딪힐 수 있다. 구글의 Play 스토어는 검수에 몇 시간만 소요되는 반면 애플의 App 스토어는 검수에만 며칠이 소요되어 동일한 버전을 동일한 시기에 릴리즈 하는 것이 쉽지 않다.
  • 둘 이상의 코드 베이스: 네이티브 앱은 Android와 IOS의 호환이 되지 않기 때문에 별도로 제작한다.

 


하이브리드 앱

하이브리드 앱은 네이티브 앱 형태로 만들되 그 안에 웹사이트를 띄울 수 있는 브라우저 창을 두는 앱을 의미한다. 조금 더 구체적으로는, 안드로이드나 iOS 전용으로 스토어에 올릴 수 있는 네이티브 앱을 만드는데 그 안에 크롬이나 사파리처럼 웹사이트를 보여줄 수 있는 창을 하나 삽입하는 것이다. 이 창을 보통 웹뷰(Webview)라고 부른다. 그래서 사용자는 이러한 앱을 실행하면 자동으로 그 웹뷰를 통해 해당 웹사이트에 접속하게 된다.

 

하이브리드 앱

장점

  • 네이티브 수준의 구현부를 업데이트할 때만 스토어의 검수가 필요하고, 웹뷰에 나타나는 콘텐츠는 웹사이트만 수정하면 되기 때문에 훨씬 더 유연하게 개발과 유지보수가 가능하다.
  • 개발자의 선택에 따라 순수한 안드로이드 앱 혹은 iOS 앱의 형태로 개발할 수도 있고, Ionic 혹은 PhoneGap 등의 프레임워크를 이용해서 개발할 수도 있다.
  • 기간도 적게 걸리고 비용도 네이티브 앱에 비해 저렴하다.

단점

    • 오프라인(offline)으로는 작동하지 않고 똑같은 코드를 베이스로 하기 때문에 안드로이드나 아이폰 등 각 디바이스의 특정 기능을 사용하는 데 문제가 발생할 수도 있다.
    • 높은 퍼포먼스(성능)를 구현하기 힘들다.
    • 웹 브라우저를 실행하여 콘텐츠를 제공하기에 인터넷 속도에 따라 구동 속도가 느려질 수도 있다.

 


모바일 웹

모바일 웹은 스마트폰 사용자들을 고려하여 개발한 웹사이트를 의미한다. 즉, 스마트폰과 같은 좁은 화면에서도 보기 좋도록 레이아웃을 구현해 놓은 웹사이트라고 보면 된다. 대표적인 예시가 바로 네이버로, 스마트폰의 브라우저로 접속할 때와 PC의 브라우저로 접속할 때를 비교해 보면 레이아웃이 다르다는 것을 알 수 있다. 모바일 웹은 반응형 혹은 적응형 방식을 이용하여 구현할 수 있다.

 

네이버와 다음의 모바일 웹, 하이브리드 앱 비교

장점

  • 발 및 유지보수가 매우 간편하다.
  • 모바일 용으로 웹사이트를 한 번 만들어 놓기만 하면 어떠한 운영체제의 스마트폰에서도 크롬이나 사파리 등의 브라우저를 이용하여 이용할 수 있다.
  • 새로운 버전을 릴리즈 할 때도 웹사이트만 수정하면 되기 때문에 Play 스토어나 App 스토어의 검수도 전혀 필요가 없다.

단점

  • 어쨌든 모바일 웹도 웹이라서, 스마트폰의 각종 브라우저들에서 공통으로 제공하는 기능들까지만 활용이 가능하다.
  • 스마트폰의 깊숙한 곳에 있는 자원과 기능들을 활용하는 고성능 앱이나 그래픽 툴 등의 앱은 개발할 수 없다.
  • 브라우저를 통해서만 이용할 수 있기 때문에 네이티브 앱처럼 홈 화면에 아이콘으로 추가하거나 주소 창 없이 사용하는 편리함은 누리기 어렵다.

 


웹 앱

모바일 웹과 웹 앱의 구분은 명확하지 않은데, 조금 더 앱에 가까운 UX를 제공하도록 만들어진 모바일 웹을 웹 앱이라고 생각하면 된다. 모바일 웹과 근본적인 차이는 없지만 겉모습과 구동방식을 앱인 것처럼 보이게 꾸며놓은 것!

장점

  • 웹사이트를 보는 것이기 때문에 따로 설치를 할 필요가 없다.
  • 모든 기기와 브라우저에서 접근할 수 있다.
  • 별도 설치 및 승인과정이 필요치 않아 유지보수가 용이하다.

단점

  • 플랫폼 API(카메라 등)을 사용할 수 없고 오로지 브라우저 API만을 사용할 수 있다.
  • 터치 친화적인 앱을 개발하기가 까다롭다. PC에서 함께 사용하는 반응형 웹이면 더더욱네이티브, 하이브리드 앱보다 실행이 까다롭다. (브라우저를 열고 검색해 들어가야 하기 때문)

 


내가 한 프로덕트의 PM이라면 어떤 앱의 형태를 선정할까?

 

네이티브 앱

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

하이브리드 앱

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

웹 앱 / 하이브리드 앱

  • 초기에는 많은 기능들이 필요 없고, 유저들의 니즈나 MVP 정도로 사용할 목적일 때
  • 예산을 아껴야 하고, 개발 기간도 짧을 경우

 


크로스-플랫폼 앱 : Cross-Platform Application

그러나 최근에는, Java나 Swift/Objective C 통한 네이티브 앱 개발 외에, 크로스 플랫폼 프레임 워크(Cross-platform frameworks)의 인기가 증가하고 있다. Google이 만든 Flutter와 Facebook이 만든 React Native가 현재 크로스 플랫폼 앱 개발 시장의 선두 주자이다.


크로스-플랫폼 앱은 스마트폰의 운영체제를 신경 쓰지 않고 하나의 언어로 개발할 수 있는 네이티브 앱이다. React Native, Flutter, Xamarin 등이 대표적인 크로스-플랫폼 앱 개발 도구이다. React Native라면 JavaScript로, Flutter라면 Dart로, Xamarin이라면 C#으로 개발을 하게 되고, 이는 빌드 타임에 안드로이드와 iOS에서 이해할 수 있는 언어로 자동 변환된다.

모바일 웹은 브라우저나 웹뷰에서 제공하는 기능들까지만 활용이 가능한 반면, 크로스-플랫폼 앱은 여러 운영체제들이 제공하는 공통적인 기능들까지 활용이 가능하다. 운영체제별 네이티브 앱을 만드는 것보다는 아직 활용할 수 있는 기능이나 그 성능에 한계가 없진 않지만, 이미 충분히 좋은 퀄리티의 앱을 개발할 수 있는 정도로 발전했다. 참고로 만약 여기에 웹뷰를 삽입하여 웹사이트를 띄운다면 크로스-플랫폼 앱이자 하이브리드 앱이 되는 것이다. 개발자의 필요에 따라 이렇게 여러 방식을 조합하여 원하는 앱을 만들 수 있다.

개발 단계에서 고려해야 할 부분은?

1. 높은 생산성
빠르게 개발하고 빠르게 테스트할 수 있는가, MVP를 빠르게 만들 수 있는가를 고려해야 한다. 아무리 좋은 퍼포먼스를 낸다고 하더라도 개발 난이도가 높고 개발 기간이 오래 걸린다면 문제가 될 수 있다.

2. 신뢰성
새로 나온 언어나 프레임워크는 기존에 오래 사용해 온 것에 비해 신뢰성이 낮을 수 있다. 유사한 문제가 발생하더라도 오래 사용된 언어는 각종 이슈에 대한 해결방법들 나와있는데 비해, 신생 스택의 경우는 그렇지 않을 수 있다. 이는 최종적으로 문제가 발생할 빈도와 이를 해결하는데 소모되는 시간을 늘려 제품 출시에 안 좋은 영향을 줄 수 있다.

3. 개발자 고용 가능성
필요한 경우 개발자를 쉽게 고용할 수 있는가, 해당 스택의 개발자 풀이 적당한가를 고려해야 한다. 시장에 해당 언어를 사용할 수 있는 개발자가 많은 언어를 선택하는 것이 개발 인력 수급과 리소스 관리에 중요한 영향을 줄 수 있다.

4. 코칭 가능성
개발하는데 방향을 잡아줄 수 있고, 막혔을 때 도움을 줄 수 있는 사람이 있는가, 리드할 사람이 있는가를 고려해야 한다. 지속 가능한 개발을 위해 사내의 테크 리드가 코치 역할을 할 수 있는가, 커뮤니티의 도움을 받을 수 있는가 등을 살펴봐야 한다.





 


참고자료

 

하이브리드 앱은 왜 써야할까?

하이브리드앱이란 웹기반으로 네이티브앱 처럼 보여주는 기술로 브라우저의 웹앱 형태의 디바이스에 담아 필요할때 해당 디바이스의 API 기능을 호출하면서 동작하도록 한다. 쉽게 말하면, 웹

shinyeonseok.com

 

 

네이티브 앱(Native App) vs 하이브리드 앱(Hybrid App) vs 프로그레시브 웹 앱(PWA) – 정의와 장단점 - 하

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

www.hanl.tech

[App] 모바일 앱의 종류 및 개념 (네이티브 앱, 웹 앱, 하이브리드 앱, 크로스-플랫폼 앱, PWA) (tistory.com)

 

[App] 모바일 앱의 종류 및 개념 (네이티브 앱, 웹 앱, 하이브리드 앱, 크로스-플랫폼 앱, PWA)

애플이 새롭게 출시하는 iOS 14에서 페이스북 픽셀 등을 활용한 마케팅에 제한을 걸게 됨에 따라(참고), 필자가 근무하고 있는 회사에서도 하이브리드 앱 개발의 필요성이 수면 위로 떠오르기 시

it-eldorado.tistory.com