brunch

You can make anything
by writing

C.S.Lewis

by 류니 Feb 27. 2022

어떤 종류의 앱을 만들어야 할까?

[코드스테이츠 PMB 8] 앱 종류


출처 - http://uxstory.co.kr/blog/2018/08/10/app_list/


과거에는 앱에서만 경험할 수 있는 부분들이 있었다. 하지만 요즘은 웹- 앱 통합 환경 구현 서비스들이 많다. 최근 앱 개발은 이런 트렌드에 맞게 개발 환경이 웹과 많이 통합되는 추세이다. 하지만 앱을 개발할 때는 단순하게 선호하는 방식을 택하는 것을 넘어 고려해야 할 부분들이 많기 때문에 앱의 종류와 구분이 필요하다. 앱의 종류에 따라 기술 스택이 달라지기 때문이다. PM은 앱을 개발하기 전에 어떤 앱이 우리 서비스에 가장 효과적인지 고려해야 한다. 어떤 기준으로 앱을 선정해야 할까? 기준을 알아보기 이전에 네이티브 앱, 모바일 웹, 웹앱, 하이브리드 앱 이렇게 4가지의 앱 종류별로 어떤 특징이 있는지 알아보자.







네이티브 앱


출처 - 위시캣


우리가 흔히 말하는 '애플리케이션'을 의미한다. 모바일 기기에 최적화된 언어로 개발된 앱으로 안드로이드 SDK를 이용해 Java(자바) 언어로 만드는 앱과 iOS 기반 SDK를 이용해 Swift (스위프트)로 만드는 대부분의 앱이 여기에 속한다고 할 수 있다.



장점 

• Android, iOS 기반의 API로 개발하여 속도가 빠르고 안정적이며 동적인 효과 및 고성능 그래픽(2D, 3D, 증강현실 등)을 구현하기 좋다.

•성능이 웹앱, 하이브리드 앱에 비해 가장 높다.

•디바이스 전체에 액세스 권한을 가질 수 있어, 기기에 저장된 주소록, 캘린더 등의 접근이 자유롭다. (플랫폼, 모바일 기기 API 사용 가능)

•타사 시스템에 의존하지 않고 철저하게 검사 된 공식 API를 사용하며, 공식 플랫폼 SDK는 구축 시간이 오래 걸리지만 보안 문제를 축소할 수 있는 기능이 있다.



단점

• Android (Java, Kotlin), iOS (Swift, Objedtive-C) 개발자가 각각 다른 언어를 사용해 두 개의 버전으로 개발해야 하기 때문에, 비용과 시간 소요가 크다.

•앱을 오픈한 이후에도 수정, 추가 개발을 진행할 경우, 앱 스토어에 심사 요청하고 승인 후 업데이트가 진행된 다음 반영된 버전을 사용할 수 있다.

•하이브리드 앱에 비해 용량이 크다.



예시

• 유튜브, 카카오톡, 인스타그램, 페이스북 등

• 대부분의 게임 앱, 그리고 계산기, 노트 등 스마트폰에 기본적으로 내장되어 있는 앱 들







모바일 웹


출처 - http://mixedcode.com/Article/Index?aidx=1055


별도의 앱을 설치하지 않고 크롬, 네이버, 사파리 등에서 이용 가능하며, 웹사이트를 접속하듯 URL이나 브라우저 검색을 통해 접근 가능하다. 웹이지만 모바일 화면에 맞게 사이트의 글자 폰트와 이미지, 터치 아이콘, 플래시 등 을 맞추어 구성한 웹을 의미한다. 쉽게 말해 PC용 홈페이지를 모바일 스크린의 크기에 맞춰 줄여 놓은 것이다. 이러한 웹에는 웹 브라우저 크기에 따라 자동으로 웹의 구성 요소의 크기와 구조가 변경되는 형태의 웹페이지인 반응형 웹과, 접속한 기기 종류(PC, 스마트폰, 패드)를 인식해 자동으로 웹의 구성 요소의 크기와 구조가 변경되는 형태의 웹 페이지인 적응형 웹이 있다.



장점

•반응형으로 제작 시 PC, 태블릿, 모바일 사이즈 모두 대응 가능하다.

•개발 시 모바일 운영체제 (OS) 별로 별도의 플랫폼이 필요하지 않고, 표준 웹 언어 (HTML, CSS, JS, PHP, ASP)로 만들어지기 때문에 네이티브, 하이브리드 앱에 비해 적은 리소스와 비용, 시간이 든다.

•사용자가 앱을 설치할 필요가 없어 수정 사항이 발생해도 사용자가 업데이트할 필요가 없다.



단점

•검색 엔진이나 URL을 통해 들어와야 하기 때문에 네이티브, 하이브리드 앱보다 실행이 까다롭다.

•플랫폼, 모바일 기기 API (카메라, 마이크, 푸시 알림 등)을 활용할 수 없고, 브라우저 API만을 사용할 수 있다.



예시

• 애플 모바일 웹, 코로나19 예방접종 모바일 웹



• 네이버 모바일 웹, 다음 모바일 웹

좌 - 모바일로 볼 때 / pc로 볼때







웹 앱


출처 - 위시캣


모바일 웹과 근본적인 차이는 없지만 겉모습과 구동방식을 앱인 것처럼 보이게 꾸며 놓은 것으로 모바일 웹의 특징을 가지면서 네이티브 앱의 장점을 갖고 있다. (네이티브 앱처럼 동작하도록 주소창을 가릴 수 있고, 모바일 기기에 아이콘을 위치시킬 수 있다.) 모바일 웹보다는 조금 더 모바일에 최적화된 앱을 의미한다. 웹앱도 모바일 웹처럼 일반적인 기술로 웹 기술로 개발되고 모바일 브라우저에서 실행되지만, 풀 브라우저 방식이 아닌 단일 페이지 방식으로 화면을 진화해 속도가 빠르다는 장점이 있다. 



장점

•개발 시 모바일 운영체제 (OS) 별로 별도의 플랫폼이 필요하지 않고, 표준 웹 언어 (HTML, CSS, JS, PHP, ASP)로 만들어지기 때문에 네이티브, 하이브리드 앱에 비해 적은 리소스와 비용, 시간이 든다.

•사용자가 앱을 설치할 필요가 없어 수정 사항이 발생해도 사용자가 업데이트할 필요가 없다.

•모든 기기와 브라우저에서 접근할 수 있다.



단점

•앱이 아니므로 사용자가 검색이나 URL을 통해 들어와야 하기 때문에 네이티브, 하이브리드 앱보다 실행이 까다롭다.

•기능상 제한이 많이 따르기 때문에, 친화적인 터치 앱을 개발하기가 약간 번거롭고 까다롭다.

•플랫폼, 모바일 기기 API (카메라, 마이크, 푸시 알림 등)을 활용할 수 없고, 브라우저 API만을 사용할 수 있다.

•네이티브 앱과 달리, 네트워크가 연결되지 않으면 서비스를 이용할 수 없다.



예시

•신문(비즈 조선), 게임(http://psmon.x-y.net/bj/)

출처 : 좌 - 미디어 오늘 / 우 - https://k2unip.tistory.com/103







하이브리드 앱


출처 - 위시캣


네이티브 개발과 웹 기술을 융합한 방식으로, 겉으로 보이게는 앱이지만 실제로는 웹을 기반으로 앱의 기능을 차용한 형태의 앱이다. 일반적으론 네이티브 웹에 view를 띄워 웹앱을 실행시키는 것이 보편적이다. 그래서 기본 기능은 HTML 등의 웹 문서로 구현하고, 패키징은 iOS, Android 등 모바일 운영체제(OS) 별로 구현한다. 따라서 네이티브 앱과 같이 앱 스토어에서 다운로드하여 사용할 수 있다.



장점

•모바일앱, 웹앱과 다르게 기기에 저장된 고유 파일이나 카메라와 같은 하드웨어적인 모바일 기기 API, 브라우저 API를 둘 다 사용할 수 있어 다양한 개발이 가능하다.

•앱 안에 웹페이지를 불러오는 방식이므로 웹상에 수정 사항이 있는 경우 빠르고 편리하게 유지 보수할 수 있고, 사용자가 업데이트할 필요가 없다.

• iOS나 Android에서 동일한 웹페이지를 사용할 수 있으므로 개발 비용 및 시간 소요가 네이티브에 비해 적게 들어간다.

•앱 용량도 비교적 가볍다.



단점

•네이티브 기능에 접근하기 위해선 네이티브 개발 지식이 결국 필요하다.

•똑같은 코드를 베이스로 하기 때문엔 안드로이드나 아이폰 등 각 디바이스의 특정 기능을 사용하는데 문제가 발생할 수도 있다. (특히 새 버전의 Android, iOS 출시될 때)

•네이티브 앱보다 UI를 구성하는 디자인 부분이 취약하며(UI 프레임워크 도구를 사용하지 않는다면 개발자가 UI를 제작해야 한다.), 동적인 요소의 구현이 어려워 성능이 떨어진다.

•오프라인으로는 작동하지 않아 네트워크 환경과 웹사이트의 용량에 따라 속도가 느려질 수 있다.

•시스템 브라우저 보안에만 의존한다.



예시

• 네이버, 크롬, 다음, 금융기관 앱, Gmail

좌 - 모바일 웹, 하이브리드 앱 / 우 - 모바일 웹. 하이브리드 앱




React Native


출처 - 인프런

추가적으로 요새는 iOS, Android 각 운영체제가 사용하는 언어가 다르기 때문에, 이 둘의 통합 개발을 가능하게 해주는 React Native라는 프레임워크를 많이 사용한다. 초기 스타트업이 개발비용과 유지 비용, 기간, 관리 등의 문제로 네이티브 앱을 만들기 어려운 경우가 있다. 그래서 초기에 많은 기능이 필요 없고 유저들의 니즈나 MVP 정도로 사용할 목적으로 상대적으로 저렴하고 기간도 짧은 웹앱 또는 하이브리드 앱을 먼저 개발한 뒤, 반응을 보고 네이티브 앱으로 변경할 때 React Native 프레임워크를 사용해 개발하기도 한다. 







PM이라면 제품 기획 과정에서 어떤 앱을 선정해야 할까?

제품을 기획하는 과정에서 앱의 형태 선정과 개발 단계에 어떤 사항을 적용해야 하는지


출처 - https://clevertap.com/blog/types-of-mobile-apps/


PM이 제품 기획 과정에서 앱을 선정할 때 시간, 비용, 구현 정도, 성능 등 다양한 요소를 파악해 앱 종류를 선정해야 한다. 그중 크게 고려해야 할 결정 요소 3가지를 알아보자.




앱 종류 결정 요소


1. 최대한 빨리 앱이 필요하다.

가능한 최단 시간에 앱이 필요할 경우, 웹 앱을 만들어야 한다. 개발 시간을 크게 단축시킬 뿐 아니라 사용자들은 이미 대부분 필요한 모바일 브라우저를 가지고 있기 때문이다.


모바일 기기 API 없이 사용하는 앱을 만들 때

기능보다는 보이는 화면상 앱처럼 보이게 만들고 싶을 때



2. 자원이 제한적이다.

시간과 돈이 없다면 웹앱이나 하이브리드 앱을 고려해야 한다. 하이브리드 앱을 사용하면 몇 달 안에 사용자가 사용할 수 있는 최소한의 실행 가능한 MVP 모델로 시장에서 테스트할 수 있기 때문이다. 그리고 성공한 뒤 나중에 본격적으로 네이티브 버전을 빌드할 수 있다.


다양한 플랫폼(모바일이나 웹)을 통한 사용자층이 넓을 때

•내용을 기본으로 한 간단한 프로젝트인 경우; 애니메이션도 없고 복잡한 기능도 필요 없을 경우

•시간은 촉박한데 여러 디바이스에서 실행돼야 하는 앱을 만들어야 할 때

프로젝트 아이디어가 있는 경우 가장 간단하게 테스트해 보고 싶을 때



3. 빠르고 안정적이어야 한다.

성능이 가장 중요한 결정 요소라면 다른 방법 없이 네이티브 앱을 만들어야 한다. 네이티브 앱은 속도, 안전성이 매우 뛰어나기 때문에 동적 효과 및 고성능 그래픽도 구현이 가능하기 때문이다. 


•3D 게임이나 애니메이션 제작

어떤 장치의 특별한 기능을 꼭 사용하고 싶을 때

•앱 기능이 많고 상당히 복잡한데 그 성능을 정확하게 나오게 하고 싶을 때




위에서 비교한 4가지 앱 종류를 주요 특성별로 비교한 표이다. 각각의 주요 특성이 다르기 때문에 내가 꼭 필요한 특성을 고려해 앱 종류를 선정해야 한다. 예를 들어 GPS, 푸시 알림 등 모바일 기기 API를 사용해야 하는데 개발 기간이 많지 않고 비용이 얼마 없다면, 하이브리드 앱을 개발하는 방향으로 선택하면 된다. 사용자 인터페이스가 중요하고 고난도 성능을 구현해야 하는데 안드로이드 개발자 밖에 없다면, 우선 먼저 Android 네이티브 앱을 만들고 추후 iOS 개발자를 고용하는 방법으로 선택하면 된다.




앱 형태를 결정하는 개발 단계에서는 또 어떤 것을 고려해야 할까? 앱 형태를 설정하고 나서 개발 단계에서는 각 앱의 종류에 따라 적용되는 사항들도 달라진다. 네이티브 앱을 만들기로 결정했다면 Android, iOS 중 어떤 언어로 먼저 개발할지 선택해야 한다. 또한 어떤 프레임 워크를 사용할지도 먼저 선정해야 한다. 프레임 워크는 한번 결정하고 나면 나중에 바꾸기가 매우 어렵기 때문이다. 하이브리드 앱을 네이티브 앱으로 바꾸는 단계에서 Android와 iOS를 통합 개발해야 한다면, React Native Framework를 사용할 수도 있다. 또한 어떤 라이브러리를 사용할지도 결정해야 한다. 그리고 각종 데이터들을 어디에 저장하고 관리할지도 함께 결정해야 한다. 이러한 부분을 결정하기 위해서 클라우드 서비스와 서버 그리고 기술 스택을 설정해야 한다.





클라우드 서버



예전에는 실제 컴퓨터를 사무실에 직접 두는 방식으로 서버를 운영했으나, 최근에는 서버 구축 및 운영을 효율적으로 하기 위해 '클라우드 서버'를 많이 이용한다. 대표적인 클라우드 서버 서비스는 아마존의 AWS, 구글의 GCP, 마이크로소프트의 Azure, 네이버의 네이버 클라우드 서비스 등이 있다. 클라우드 서버는 개발 초기에 한번 설정해 두면 바뀌어야 할 내용들이 많지 않다. 하지만 PM은 서버의 트래픽, 운영 계획은 비용과 연관이 크기 때문에 서버의 기초적인 동작 개념과 사용법을 알아두는 것이 제품 관리 차원에서 도움이 된다. 지그재그와 같이 데이터양이 많은 서비스 같은 경우는 SQL DB로 감당하기 힘들어서 AWS 서버를 사용한다고 한다. (참고 : https://zdnet.co.kr/view/?no=20210810095607)





기술 스택 설정하기


서비스별 어떤 기술 스택을 사용하는지 알려주는 사이트



기술 스택이란 일반적으로 소프트웨어를 만들기 위해서 사용되는 프로그래밍 언어와 도구 일체를 의미하기 위해 사용되는 용어이다. 프로그래밍 언어, 데이터베이스, 개발 프레임 워크 등 흔히 기술적이라 부르는 것들을 통칭한다. 기술 스택을 선정하는 이유는 우리가 만들고자 하는 앱 서비스의 기능과 종류에 따라 프레임워크부터 다양한 라이브러리 같은 기술 스택의 종류가 달라지기 때문이다. 기술 스택을 설정하는데 고려해야 할 중요 요소 4가지가 있다.



1. 높은 생산성

빠르게 개발하고 빠르게 테스트할 수 있는지 고려해야 한다. 좋은 퍼포먼스를 낸다고 하더라도 개발 난이도가 높고 개발 기간이 오래 걸린다면 문제가 될 수 있다.



2. 신뢰성

새로 나온 언어나 프레임 워크는 기존에 오랫동안 사용한 것에 비해 신뢰성이 낮을 수 있다. 오랫동안 사용된 언어는 해결 방법들이 많이 공유되어 있지만 새로 나온 언어는 그렇지 않을 수 있기 때문이다. 이는 문제가 발생할 때 해결하는 데 많은 리소스가 들 수 있기 때문에 신중하게 골라야 한다.



3. 개발자 고용 가능성

개발자를 쉽게 고용할 수 있는 상황인지, 해당 스택의 개발자 풀이 적당한지 고려해야 한다. 현재 시장에서 많이 사용하지 않는 언어를 사용하는 경우 개발 인력 수급과 리소스 관리에 영향을 줄 수 있다.



4. 코칭 가능성 

개발 시 방향을 잡아주고, 도움을 줄 수 있는 리드할 사람이 있는지 고려해야 한다. 지속 가능한 개발을 위해 사내의 테크 리드가 코치 역할을 할 수 있는지, 커뮤니티의 도움을 받을 수 있는지 살펴봐야 한다.





또한 PM은 개발 스택에 따라 채용인원과 직원들의 성향이 달라질 수 있기 때문에 HR, 기업문화 등 다른 영역에 어떤 영향을 끼치는지도 함께 고려해야 한다. 결국 어떤 유형의 앱 종류를 선택하는 것은 빨리 결정될 수 있는 문제는 아니다. 앱을 만드는 목적과, 이 앱의 어떤 모습을 보여주고 싶은지, 그리고 가장 중요한 것은 고객의 문제를 해결하기 위해 어떤 부분을 중점적으로 다뤄야 하는지를 보고 앱 종류를 선택해야 한다.





건축을 설계하다 서비스까지 설계하는 본 투 비 설계자의 PM도전 프로젝트



참고 자료

- medium : [코드크레인] 네이티브 앱? 하이브리드 앱? 모바일 웹?

- 위시캣 : [그린클라이언트]네이티브앱, 웹 앱, 하이브리드 앱 장단점 알아보세요! / 네이티브 앱, 웹 앱, 하이- 브리드 앱은 뭐가 다른가?

https://m.blog.naver.com/acornedu/221012420292

https://velog.io/@nogomin/%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EC%95%B1-%EC%9B%B9%EC%95%B1-%ED%95%98%EC%9D%B4%EB%B8%8C%EB%A6%AC%EB%93%9C-%EC%95%B1

https://www.hanl.tech/blog/native-vs-hybrid-vs-pwa/

https://clevertap.com/blog/types-of-mobile-apps/



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari