프로그래밍 언어/React Native (RN)

React Native는 어떤 언어일까?

chobyeonggyu03 2024. 6. 24. 10:09

이번 글에서는 React Native에 대해 공부하기 전 간략하게 React Native라는 언어가 어떤 언어이고, 어떤 특징을 가지는지에 대해 간단하게 정리하고 넘어가고자 한다.
 
 
 

React Native란?

● Web 기반 React 기술을 활용하여 iOS와 Android 모두에서 작동하는 모바일 앱을 개발할 수 있는 프레임워크이다.
 
● React와 동일하게 Javascript 언어를 기반으로 하며, 네이티브 플랫폼의 기능을 최대한 활용할 수 있도록 해주는 프레임워크이다.
 
● Facebook에 의해 2015년에 처음 출시된 프레임워크이다.
 
(native platform이란 모바일 기기의 OS에 직접적으로 설계된 애플리케이션으로, 각 플랫폼의 고유 API와 직접적으로 상호 작용할 수 있어, 높은 성능과 우수한 사용자 경험을 제공하게 해주며, 일반적으로 반응속도가 빠르고 복잡한 애니메이션이나 계산이 필요한 작업에 많이 쓰인다.)
 
 
 

React Native의 특징

Cross Platform : iOS와 Android에서 모두 작동하는 앱을 개발할 수 있게 도와준다.
 
Componant 기반의 아키텍처 : React처럼 Componant기반의 구조를 사용함, 이를 통해 코드의 재사용성을 높이고, 복잡 한 UI를 비교적 쉽게 구현할 수 있게 해준다.
 
실시간 업데이트 기능과 핫 리로딩 : 코드를 수정했을 때, 앱이나 서버를 다시 리로딩하거나 컴파일하지 않고도 변경내용을 바로바로 업데이트해 준다.
 
네이티브 플랫폼과 동일한 성능 : 네이티브 플랫폼의 API와 직접정으로 상호작용을 하기에 네이티브 플랫폼과 비슷한 성능을 제공해 준다. (대부분의 코드가 native로 컴파일 됨)
 
 
 

React Native의 간단한 작동원리

1. Javascript 코드를 작성하면 컴파일해줌
 
2. 앱을 build할 때 앱의 전체 로직을 가지고 있는 JS bundle을 만들어 iOS와 Android 각각의 플랫폼에 세팅해줌
 
3. 앱을 실행하기 위한 Native thread가 직접적으로 JS thread와 통신하지 않고 bridge를 활용하여 통신함
( 브릿지를 통해 통신하기에 크로스 플랫폼기능을 제공할 수 있게 됨)
 
4.Native Componant와 상호작용하며 iOS에서는 UIView, Android에서는 android.view로 변환 후, 각각의 OS에서 렌더링이 일어남