모든 것을 시작하기에 앞서서, 리액트 네이티브를 이해하기 위한 기본 개념을 알고 넘어가고자 한다.
리액트 네이티브는 '크로스 플랫폼' 타겟의 '스크립트 언어 기반' '모바일 어플리케이션 개발 라이브러리'이다. 이 말부터 한번 이해해보자.
1. 크로스 플랫폼
크로스 플랫폼 (Cross Platform)이란 말 그대로, '플랫폼'을 넘나드는 것을 의미한다. 당연히 여기서 말하는 플랫폼이란, 리액트 네이티브가 목표로 하는 모바일 어플리케이션 플랫폼을 의미하고 현 시점에서는 양대 모바일 플랫폼인 AndroidOS 와 iOS를 의미한다.
크로스 플랫폼은 '하이브리드 앱' 이라고도 하는데, 개발된 UI를 브릿지 (Bridge)를 통해 Android와 iOS 각각의 베이스인 네이티브 스레드(Native Thread)와 통신할 수 있도록 하여 두 OS 각각의 언어로 개발하는 대신 한 가지의 개발 언어로 두 OS 모두 대응이 가능하도록 구조화한 것이 특징이다.
2. 스크립트 언어
'스크립트' 언어는 본래 이미 빌드(Compile)된 형태의 프로그램을 제어하기 위한 제어용 언어(대본; Script)를 의미했으나, 현재는 Javascript를 기반으로 한 언어의 한 갈래를 뭉뚱그려 표현하는 형태로 더 많이 사용된다. 태생적으로 컴파일된 프로그램을 '가볍게' 제어하기 위한 언어였으므로, 사용자 단(Front-end)에서 UI를 조작하는 형태로 개발되었다.
때문에 기존의 웹 개발 환경에서 Javascript는 사용자 UI를 업데이트하고 인터랙티브 반응을 정의하는 데 주로 활용되었는데, 하드웨어 성능이 좋아지면서 Javascript의 퍼포먼스와 역할도 같이 성장해왔고 NodeJS처럼 단순히 사용자 UI 조작을 넘어 프로그래밍 레벨에서 앱을 작동시킬 수 있는 수준까지 발전하였다.
3. 모바일 어플리케이션 개발 라이브러리
리액트 네이티브는 위의 배경들 속에서 등장한 모바일 어플리케이션 개발용 라이브러리이다. 즉 스크립트 언어를 이용하여 UI를 개발한 뒤 양대 OS, 여기에 자바스크립트 본연의 타겟인 웹 앱(Web App)까지를 대상으로 한 앱을 제작 / 배포할 수 있도록 도와주는 기능 뭉치인 셈이다.
위의 배경 때문에 리액트 네이티브를 공부하기 전에 웹 개발 환경 및 언어에 익숙하면 정말 쉽게 느껴질 수 있는데, 본 블로그는 웹 개발 환경에 대한 이해도를 충분히 갖춘 상태를 전제하고 웹 환경과 리액트 네이티브 환경을 비교하면서 작성하고자 한다.
'React.Native' 카테고리의 다른 글
[React] useEffect와 정리함수(clean up) (10) | 2024.11.10 |
---|---|
[React] useEffect 이해하기 (1) | 2024.11.09 |
[React] State 이해하기 (2) | 2024.11.08 |
[RN-03] 컴포넌트 (Component) 이해하기 (0) | 2024.04.22 |
[RN-02] JSX 이해하기 (0) | 2024.04.19 |