00. React-Native 란

원성희·2022년 5월 8일
0

React-Native

목록 보기
1/2

목표

ReactNative으로 개발하기 앞서 알아야 할 기본 지식들을 정리해보자

React-Native가 무엇인가?

페이스북에서 만든 오픈소스 MobileApp Framework이다. js언어를 이용하여 IOS와 AOS 동시에 개발하기 위해 개발되었다. 기존의 웹뷰를 사용하던 웹앱의 성능을 보안하고자 NativeBridge를 사용하여 NativeThread와 통신하면서 성능을 최적화하였다.

네이티브앱 -> 웹앱 -> HabridApp -> 크로스 플랫폼 앱(RN, Flutter, Xamarin)

동작 원리

기존 JS가 DOM으로 랜더링했지만, 각 플랫폼의 API를 호출하여 컴포넌트로 랜더링한다. 예를 들면 iOS에서는 Objective-C API를 직접 호출하고, AOS에서는 JAVA API를 호출하여 랜더링한다.
각각의 native ui에 접근하는 인터페이스를 '브릿지(bridge)' 에서 제공한다.

아래 사이트에서 동작원리에 대해 훌륭하게 소개하고 있다. 한번씩 읽어보면 좋다.
브릿지, JSThread, MainThread 등에 대한 소개 : https://velog.io/@koreanhole/React-Native%EC%9D%98-%EC%9E%91%EB%8F%99%EC%9B%90%EB%A6%AC

장점

  • JS이기 때문에 러닝커브가 낮다. (기존 Front-End 개발자 기준 ㅠㅠ )
  • 소스 코드 재사용과 생산성
  • 흔히 두 플랫폼으로 동시개발로 인해 1/2로 비용이 줄 것 같지만 실상은 그렇지 않다. 실제로 배포 및 운영을 하다보면 1.8/2 ~ 1.5/2 정도로 보인다.
  • 개인적으로는 CodePush로 빠른 배포가 가장 큰 장점으로 보인다.

단점

  • 아무래도 Native개발자로서 러닝커브가 있다. (경력 단절)
  • Native보다 성능이 많이 떨어진다.
  • 디테일한 구현이 어렵다.
  • 각 플랫폼에 따른 이슈가 발생한다.
  • CodePush가 각 스토어 등록 정책에 위배되고 있다고 생각한다. 언제 막힐지 모를 일이다.

참조 사이트

profile
Simple is Best

0개의 댓글