brunch

You can make anything
by writing

C.S.Lewis

by 오은 Apr 26. 2022

창업 경험의 회고로 알아보는 앱의 4가지 형태

[코드스테이츠 PMB 11기] 앱의 4가지 형태



1. 개발자와의 대화로 돌아보는 나의 무지함


대학을 다닐 때 창업 동아리에서 활동했었다. 우리 서비스를 처음 앱으로 만들어야 하는 단계에 도착했을 때 즈음 개발자와 나눴던 대화를 실화를 바탕으로 재구성해봤다.


물론 맨 마지막 말처럼 대답을 하진 않았지만, 그 이후로 설명을 해주실 때마다 나는 저런 맥락의 요구를 했던 것 같다. 이때의 대화가 내 머릿속에 남아있는 이유는 아마 내가 진짜 개발 쪽에 대해서는 1도 모른다는 사실을 몸소 깨달은 첫 경험이어서 그런 것 같다. 꽤나 친절하게 설명해주셨지만 당시에는 내가 바로 이해하지 못했고, 나중에 다시 공부해야겠다...라는 생각으로 넘어갔는데, 결국 돌고 돌아 진짜 공부를 해야 할 상황에 직면했다. 지금 와서 돌아보면 그때의 나는 웹과 앱에 대한 명확한 개념이 없었던 것 같다. 다운로드하면 앱이고 링크 타고 가면 웹 아닌가?라고 생각했던 개발 알못 그 자체... 이제 그때의 나는 없다! 오늘 앱의 형태에 대해서 제대로 뿌셔보겠다!

 







2. 앱의 4가지 형태

 

앱의 형태는 네이티브 앱, 모바일 웹, 모바일 웹앱, 하이브리드 앱으로 총 4가지 형태가 있다. 앱을 개발할 때는 단순하게 선호하는 것을 넘어 서비스를 하는 업체 입장에서 기간, 비용, 관리 등 고려할 부분들이 많다. 그래서 PM은 각각의 앱 형태의 특성과 장단점을 잘 파악하여 상황에 적합한 앱 형태로 개발할 수 있도록 해야 한다. 그래서 오늘은 이 4가지 앱 형태의 특성과 장단점에 대해서 알아보겠다!



네이티브 앱(Native App)


스마트폰이 탄생하면서 존재하기 시작한 가장 기본적인 형태의 앱이다. 가장 큰 특징은 각 운영체제별로 개발하는 방식이 완전히 다르다는 것이다. IOS 앱은 Objective-C 혹은 Swift로 개발을 하고, AOS는 Java 나 c언어 등으로 개발한다.


장점

해당 운영체제가 허용하는 모든 자원과 기능(카메라, 센서, 파일 시스템 등)들을 직접 활용할 수 있다.

2D나 3D 게임 증강현실 등을 이용한 고퀄리티 앱을 개발할 수 있다.


단점

IOS와 AOS를 따로 개발하고 유지 보수해줘야 해서 인력, 시간, 비용이 많이 소모된다.

앱스토어나 PLAY스토어를 통해서만 배포할 수 있기 때문에 배포 기간이 일정하지 않다.

앱스토어를 통해 업데이트가 가능하기 때문에 업데이트가 느리다.



모바일 웹(Mobile Web)


모바일 웹은 스마트폰 사용자들을 고려하여 만든 웹사이트를 의미한다. 스마트폰과 같은 작은 공간에서도 보기 좋게 정보를 얻을 수 있도록 레이아웃을 구현해 놓은 웹사이트라고 할 수 있다.


장점

개발 및 유지보수가 매우 간편하다.

앱을 설치할 필요가 없기 때문에 업데이트를 할 때도 Play 스토어나 앱스토어의 검수가 전혀 필요 없다.


단점

화면 전체의 내용을 서버에서 새로 받아 현재 화면을 갱신하는 풀 브라우징 방식이라 앱에 비해 접속 속도가 느리다.

네트워크 환경에 따라 속도가 느려질 수 있다.




모바일 웹 앱(Mobile Web App)


모바일 웹처럼 브라우저를 통해 접근해야 하지만, UI를 앱처럼 만들어 네이티브 앱과 유사한 동작과 화면 전환 효과를 보여주는 방식이다.


장점

모바일 웹보다 실행 속도가 빠름

개발 및 유지보수가 간편하다.


단점

스마트폰의 브라우저에서 공통으로 제공하는 기능까지만 사용 가능하다.

네이티브 앱보다 성능이 떨어진다.

카메라나 센서 등 스마트폰의 하드웨어적 기능을 사용할 수 없다.



하이브리드 앱(Hybrid App)


네이티브 앱의 구조를 가지고 있으나, 일부 기능들을 웹으로 구현해 개발하는 방식이다. 웹의 기능을 쉽게 연결할 수 있는 특징을 가지고 있다.


장점

카메라, 센서와 같은 하드웨어적 기능을 사용할 수 있다.

웹 영역에 수정이 있을 경우 업데이트 없이 바로 반영할 수 있다.


단점

네이티브보다는 퍼포먼스가 떨어질 수 있다.(속도가 느리거나, gps가 원활하게 동작하지 않음 등)

웹 앱과 같이 네트워크 환경에 따라 속도가 느려질 수 있다.






3. 개발할 때 어떤 앱을 사용해야 할까?


앞에서 말한 내용들을 표로 정리해봤다. 여기서의 정도는 절대적인 것이 아닌 상대적인 정도이다. 더하여 정보를 기반으로 했지만 내 마음대로 정리한 것이기 때문에 이걸 보시고 틀린 것이 있다면 알려주시면 너무나 감사드리겠다...:')

내가 뽑은 특성 말고도 더 고려할 것들이 있을 수 있겠지만 개발 알못인 나는 이것들을 기반으로 생각해보려 한다.




개발자와의 대화 회고하기


오늘 처음 시작했던 개발자와의 대화문으로 돌아가 보자.

개발자 A는 "하이브리드로 할까? 네이티브로 할까?"라고 나에게 물었다.

웹에 대한 것을 물어보지 않은 이유는 우리가 만들어야 할 서비스가 핸드폰에 있는 하드웨어를 사용해야 하는 앱이었기 때문이다.

 오늘 배운 것을 바탕으로 이 정도로 대답할 수 있는 정도는 된 것 같다...!

그런데 진짜 어떻게 개발했었는지가 기억이 안 나 그때 함께했던 개발자 분께 물어봤는데,

"react native로 프로토타입 제작했었고, 최종은 swift로 만들었어."라는 답변을 얻었다.

....

저 말을 해석하자면 일단 프로토타입 때는 하이브리드 쪽으로 제작했다가 최종은 ios 네이티브 앱으로 제작했다는 말이다. 나의 회고랑 왜 다른것인가?! 라고 생각해보면 오늘 배운 여러 특성 외의 다른 변수가 동작했었던 것으로 기억한다. 이렇게 무조건적인 정답은 없다는 것을 다시 또 확인하면서 오늘 포스팅도 마무리!






참고자료



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