React Native - how It works?

정태수·2023년 9월 12일
post-thumbnail

RN이란
iOS 및 Android 용 실제 네이티브 렌더링 모바일 앱 개발을 위한 자바스크립트 프레임워크이다. 리액트 기반 앱 개발이 가능하다.

Cross platform이란?
크로스 플랫폼 개발을 통해 개발자는 단일 코드베이스를 사용하여 여러 플랫폼 또는 장치와 호환되는 소프트웨어 개발을 할수 있다. 즉 하나의 코드로 두개의 플랫폼(iOS, Android)에 대응하여 개발 가능하다.

기본개념
RN의 기본 개념은 자바스크립트 코드와 네이티브 코드 (안드로이드 - JAVA/Kotlin, iOS - ObjectiveC/Swift)를 결합하여 함께 작동하도록 함. 네이티브 코드는 기기에서 직접 실행되지만 자바스크립트는 실행할 가상 머신을 필요로 합니다.

이를 위해 RN에는 JavaScriptCore 라는 자바스크립트 엔진이 탑재되고 있으며 이 자바스크립트 엔진이 우리가 작성하는 자바스크립트 코드를 앱 내에서 실행해주게 됩니다.

JAVA(Kotlin),ObjectiveC(Swift)는 JavaScript와 서로 다른 프로그래밍 언어로 서로 직접 대화할 수 없다. 이를 위해 서로가 이해할 수 있는 JSON으로 통신하게 되며 이러한 일련의 작업들은 Bridge에서 처리된다.

빌드하는 동안 JAVA 또는 Objective-C로 작성된 네이티브 코드는 각각 Java 및 C++ 바이너리 파일로 컴파일 되고 Javascript 코드는 Metro 번들러를 사용하여 번들된다. Metro는 웹 개발에 사용되는 Webpack 번들러와 유사하게 작동하지만 React Native에 최적화 되어 있음.

profile
프론트엔드 개발자

0개의 댓글