클라이언트 : (2) 앱 개발 클라이언트 : (2) 앱 개발
📑

클라이언트 : (2) 앱 개발

 

APP

 
안드로이드 개발자 : 안드로이드 (OS 위에 돌아가는 우리 회사의 소프트웨어를 개발하는) 개발자
iOS 개발자 : iOS (OS 위에 돌아가는 우리 회사의 소프트웨어를 개발하는) 개발자
맥OS 개발자 : 맥OS (OS 위에 돌아가는 우리 회사의 소프트웨어를 개발하는) 개발자
윈도우 개발자 : 윈도우 (OS 위에 돌아가는 우리 회사의 소프트웨어를 개발하는) 개발자
 
 
안드로이드 App과 iOS App은 유저에게는 동일하게 보일 수는 있지만.. 서로 다른 2개의 서비스라고 해도 과언이 아닙니다.
iOS와 안드로이드는 개발 언어도 다릅니다.
notion imagenotion image
notion imagenotion image
 
 
notion imagenotion image
 
 
ex. iOS background execution
notion imagenotion image
notion imagenotion image
 
ex. android 권한
notion imagenotion image
notion imagenotion image
 
 
notion imagenotion image
 
 
💡
PM은 OS 버전까지도 챙겨야 합니다.
Android 버전
notion imagenotion image
 
 
 
 
💡
PM에게 중요한 것은, 지금 만들려는 기능이 웹 인지, 앱 인지를 구분하는 것.
 

앱은 그냥 전부 다 앱 아닌가요?

NO 하나의 앱 안에는 웹과 앱이 공존합니다.

 
그래서 앱 내에서 하나하나 뜯어보면 네이티브 영역 & 웹 영역으로 나뉜다.
서버 개발자는 단일 코드로 API 만들고, 클라이언트 개발자가 웹 용과 앱 용으로 나누어서 쓴다.
 
Native UI | 네이티브 UIMobile OS( iOS / Android )의 프레임워크 기반으로부터 개발한 UI Component사용자가 앱스토어 / 플레이스토어에서 앱을 받아 설치하면서, UI와 비즈니스 로직이 코드로 모바일 앱 내에 탑재 UI 표현에 필요한 데이터서버로부터 받아서 표현
notion imagenotion image
 
 
notion imagenotion image
 

뭐가 앱이고 뭐가 웹인지 구분을 어떻게 하나요?

notion imagenotion image
notion imagenotion image
notion imagenotion image
 
notion imagenotion image
notion imagenotion image
notion imagenotion image
 
 

앱과 웹의 차이 1. 심사 필요 여부

 
notion imagenotion image
 

앱과 웹의 차이 2. 업데이트

💡
PM에게 중요한 웹/앱의 차이는? 앱은 내가 버전을 올려도 유저가 버전을 업그레이드하지 않으면, 유저의 인터페이스가 바뀌지 않는다. 웹은 내가 버전을 올리면 유저가 새로 고침 (적어도 컴터 새로 키면) 유저의 인터페이스가 무조건 강제로 바뀐다. ⇒ 계속 바뀌는 부분, 파일럿으로 실험 해보는 부분은 웹으로 개발하도록 결정하는 것은 PM의 몫. - 업데이트를 어떻게 처리할지?(추천할지? 아니면 강제할지? 등등)도 정해야한다.
 
notion imagenotion image
 

앱과 웹의 차이 3. 배포하는데 걸리는 전체 시간

종합해보면,
앱은 배포를 하는데 시간이 많이 걸리는 반면에,
웹은 적게 걸린다.
 

앱과 웹의 차이 4. 자주 바뀔 부분 인지, 계속 유지할 부분 인지?

일반적으로 새로 출시하는 기능의 경우 웹으로 만들어서 빠르게 테스팅 합니다.
notion imagenotion image
 
notion imagenotion image

앱과 웹의 차이 5. OS 권한이 필요한 부분인지, 아닌지

 
notion imagenotion image
 

하이브리드 어플리케이션

 
notion imagenotion image
네이티브 앱 : 네이티브 앱은 앱의 실행 속도가 빠르며 운영체제 내부의 주소록, 파일, 등 고유 정보가 변경 가능하고, 센서 제어를 통하여 카메라나 플래시 등의 사용이 가능합니다. 하지만 개발 기간이 길고 비용 또한 높은 편입니다.
웹 앱 : 웹 앱은 모바일 웹과 네이티브 앱을 결합한 유형으로, PC나 스마트폰 등 단말기의 기종에 관계없이 사용이 가능합니다. 또한 웹에서 사용하는 언어로 개발하기 때문에 비용과 시간적인 면에서 저렴하나 통신 환경에 따라서 접속 장애가 발생할 수 있는 단점이 있고 기기의 센서 등을 제어하기 힘들며 API 이용이 어렵습니다.
 
⇒ 네이티브 앱과 웹 앱의 장점만을 모으고 단점들은 보완한 형태 앱, 하이브리드 앱
notion imagenotion image
 
내부는 웹 앱으로 개발을 한 이후 외부를 네이티브 앱으로 둘러싸고 있는 형태
  • 주요 화면 부분은 웹 앱의 특성을 살려서 구현하였으며
  • 네이티브 앱의 특성을 살려 하드웨어 접근이 가능하도록 만듬.
 

React Native

리액트 작동 원리를 바탕으로
웹을 모바일 앱으로 제작할 수 있는
페이스북 오픈소스 프레임워크
notion imagenotion image
→ Javascript와 React만 알고 있다면 안드로이드, iOS 앱 모두 개발할 수 있다.
JS 코드로 개발하면 → React Native가 iOS, 안드로이드에 맞는 Native UI로 변환 → 결과물 자체는 Native App

Learn once, write anywhere

 
notion imagenotion image
 
 
장점
  • 네이티브와 비교해 월등히 빠른 생산성. 체감으론 3~4배
  • UI 등 패키지 40여개
  • 라이브 리로딩
  • 코드 푸시
  • 간편한 문법
단점
  • 초기 퍼포먼스는 좋지만 뷰 스택이 쌓일수록 느려짐
  • 비지니스 로직이 복잡하면 느려짐
  • 네이티브 뷰 <-> JS 로직간 소통이 많으면 느려짐
  • 미묘한 UI 의 이상 동작
  • 써드파티 SDK 탑재 제약