개발

[개발] 크로스플랫폼 개발 비교

코드아키택트 2022. 3. 19. 17:48
반응형

https://doit.software/blog/flutter-vs-react-native#screen1

요즘 크로스플랫폼 앱개발이라는 것을 깔짝이며 여러 프레임워크의 장단점을 알아보기 위해서 글을 요약함. 여기서 네이티브는 swift나 kotlin 등을 통해 각각 iOS, Android 개발을 하는 것을 뜻함. 크로스 플랫폼은 React-native, Flutter 등을 통해 하나의 코드베이스로 여러 OS에 맞는 앱을 개발하는 것을 뜻함

 

네이티브 개발과 크로스 플랫폼 개발 비교

원문에는 여러가지가 써있지만, 몇가지만 씀

개발 비용

네이티브의 경우 각각 앱을 따로 만들어야 하기 때문에 비용이 높고, 크로스플랫폼 개발은 상대적으로 저렴하다고 볼 수 있음

성능

네이티브는 하드웨어에 가장 적합한 방식을 쓰기 때문에 성능이 더 좋음.

프로젝트 수행 시간

하나의 플랫폼만 노린다면 네이티브 방식이 빠름. 반면 여러 플랫폼을 노린다면 크로스 플랫폼이 빠름. 단 버그가 생길떄 디버그 시간이 크로스 플랫폼 방식에서 더 오래 걸리 수 있음.

 

상위 5개 크로스 플랫폼  앱 개발

 크로스 플랫폼 코드는 재 사용 가능함. 즉 프로젝트 뿐만 아니라 다양한 플랫폼 사이에서 재사용 가능. 이러한 특성으로 20%정도 비용 절감.

 또한 크로스 플랫폼 프레임워크는 끊임 없이 진화중. 네이티브 만큼 성능이 좋아지기 위해 개선 중. 이 글에선 Fluuter와  React-native 중심으로 다루지만, Xamarin, Ionic, Cordova도 눈에 띄는 제품들임.

 

Xamarin

.NET 개발플랫폼 익스텐션임. iOS, Android, Windows App개발 가능. 마이크로 소프트웨어 에서 개발함. 따라서 마이크로 소프트를 타겟으로 한다면 선택.

 언어는 XAML 또는 C#으로 만들어짐

xamarin으로 만들어진 앱

https://dotnet.microsoft.com/en-us/platform/customers/xamarin

Ionic

javascript 기반 UI 툴킷. React.js, Vue.js, Angular.js 중 일부에 포함됨

2017년 이후 붐이 사그라듬.

위의 앱들이 Ionic 사용

Cordova

오픈 소스인데 가장 논란이 많으며 인기가 없음. 코르도바만 가지고 멋진 인터페이스를 만들 수 없음

 

Flutter

구글에서 만듬. Dart라는 언어 사용. 자세하건 아래에서

 

React-native

 페이스북에서 만듬. 오픈소스이며 인기가 많음. 자세한건 역시 아래에서

 

Flutter 장단점

Flutter는 등장과 함께 iOS와 Android를 노리고 나옴

 

장점

플러터가 커버하는 영역은 - Flutter Embbeded(장비에 들어가는 프로그램, 소니 등) / 플러터 웹 / 데스크탑

장점 5가지는 다음과 같음

- 빠른 개발 및 배포 : "핫 리로드"기능 덕분

- 수준 높은 문서 : 공식 문서를 통해 플러터 사용 경험 없이도 하기 좋음

- 기능이 풍부한 유저 인터페이스 : 모든 컴포넌트 애니메이션 가능 + 픽셀 단위 까지 커스터마이제이션

- 이전 장비와 호환 : iOS8, Android 5.1.1도 지원

- 플러터 UI와 네이티브 UI 분리 : 네이티브 UI가 기능이 부족하거나 기능이 실패할 경우 Flutter UI가 처리해줌

 

플러터의 단점

짧은 프로젝트 기간

 아직 다양한 유즈케이스가 없음. 따라서 복잡한 프로젝트 구현 가능성 알 수 없음

역동적인 발전

 업데이트가 자주 일어남. 이때 기존에 작동하던 코드가 원하는 것과 다른 방식으로 작동할 수도 있음

프로젝트 사이즈

 용량을 많이 잡아먹음

 

리엑트 네이티브 장단점

리엑트네이티브 장점

 자바스크립트 사용하기 때문에 개발자 채용 속도가 빠르고, 제품도 빠르게 만들 수 있음. 유지관리가 쉬움.

단점

형편없는 문서

 문서정리가 잘 안되어있다

다양한 라이브러리 연결 가능하지만...

 불러오기는 가능하지만 제대로 작동하지 않는 경우도 많음

일부분 native 컴포넌트 의지

 일부 기능을 제대로 사용하기 위해선 native 컴포넌트 사용해야함

 

둘중 어느것을 택해야 하는가?

플러터 리엑트네이티브
GPU / CPU 성능을 많이 피요로 할때 간단히 UI를 보여줄떄
UI 커스터마이제이션이 많이 필요한 경우 JS / REACT / React native에 능통한 사람들이 구성일떄
모바일 앱 이상을 생각하고 있을때 앱이 비교적 간단하고 가벼울떄
웨어러블, 엠베디드, PC, 운송수단 앱 고려시 Web + iOS / Android일떄

 

연봉수준

 

https://www.mk.co.kr/news/it/view/2021/12/1213771/

 

국내 개발자 평균 연봉은 `5700만원`…10명 중 8명 `초과근무` 상태

오픈서베이, `개발자 트렌드 리포트` 발간 개발언어 Java>JavaScript>SQL 순 대부분 대학에서 개발 처음 접해 재테크·업무 관련 자기계발 관심 많아

www.mk.co.kr

 

 

반응형