React 알면 모바일 어플리케이션도 뚝딱 만들 수 있다고?
React Native는 페이스북에서 개발한 크로스 플랫폼 개발 프레임워크로, 웹과 서버에서 널리 사용되는 JavaScript를 언어로 사용합니다.
웹 프론트 엔드 개발에 대표적인 라이브러리인 React를 기반으로 개발된 프레임 워크이기에,
React를 경험해 본 개발자 거나 웹 개발에 익숙한 개발자는 React Native를 사용하면 비교적 쉽게 모바일 앱을 만들 수 있습니다.
라고 한다.
리액트 네이티브는 페이스북에서 만든 오픈소스 모바일 응용 프로그램으로 네이티브 앱 개발을 위한 자바스크립트 프레임워크이다.
크로스 플랫폼으로 하나의 코드 개발로 ios와 android에서 동일하게 동작시킬 수 있다.
자바스크립트를 기본 언어로 쓰기 때문에 자바나 코틀린 언어에 의존하는 안드로이드 네이티브 앱 혹은 swift 언어에 의존하는 ios 네이티브 앱 개발 보다 진입장벽이 낮고 쉽다는 장점을 가지고 있다.
즉 javaScript 로 React 라이브러리를 이용해 코드를 작성하면, React Native 번역기가 IOS , ANDROID 에 맞게 번역해준다는 거군

흐름을 표현하면 이렇다.
javaScript 로 작성한 React-Native 의 JS Bundle 은 JS thread 에 의해 실행된다.
직접적으로 커뮤니케이션을 할 수 없는데 중간에 react-native에서 제공되는 brideg에 의해 상호작용을 하게 된다.
react-native로 앱을 제작할 때 자주 사용하는 네이티브 기능들을 패키지로 묶어서 제공한다.
그래서 개발 환경 구축과 실제 개발이 쉽고 편하다. 하지만 OS Layer와 직접 상호 작용이 불가능하다.
(Java, Kotlin, obj-c, swift로 추가 코딩이 불가하다.)
expo에서 제공해 주는 모듈만 가져다 사용할 수 있기 때문에 개발 관점에서의 자유도가 낮다.
초기 개발 환경 구축 및 실제 앱 개발 시 설정 시간이 다소 걸리지만 OS Layer와 직접 상호작용이 가능하다.
(Java, Kotlin, obj-c, swift로 추가 코딩이 가능하다.)
Native 기능에 접근이 가능하기 때문에 원하는 언어로 추가 코딩이 가능하기 때문에 필요한 기능이 있는 경우 모듈을 직접 만들어서 사용할 수 있어 개발 관점에서의 자유도가 높다.