본문 바로가기

React Native

React Native 개요

React Js와 차이

React Native는 webview 기반으로 실행되는 Hybrid App과는 달리, Javascript Engine만사용하고, webview가 아닌 Native UI를 직접 Bridge 하는 방식을 사용한다.

iOS는 Safari에서 구동하는 Javascript Engine인 JavascriptCore를 사용하고, Android는 V8을 엔진으로 사용한다. iOS는 JIT compiler를 사용하지 않고, 대신 AOT(Ahead-of-Time)을 사용한다. AOT 컴파일러는 미리 컴파일된 코드를 실행하는 방식으로 작동한다. 반대로, Android의 경우 V8을 사용하기 때문에, JIT 컴파일러를 사용한다. 

 

새로운 아키텍쳐는 Bridge라는 개념을 버리고, JavaScript Interface(JSI)라는 다른 통신 메커니즘이 도입되었다. JSI는 Javascript객체가  C++의 참조를 보유하거나 그 반대가 가능한 인터페이스이다. 이게, 동기식 실행이 가능해졌고, 동시성, 낮은 오버헤드, 타입안정성등을 가져올 수 있다고 한다.