네이티브 앱이란?
특정 플랫폼 ( IOS, Android ) 을 위해 최적화 되어 개발된 애플리케이션
웹앱이란?
웹 기술을 사용하여 개발하며, 별도의 다운로드 없이 모바일 브라우저를 통해 접근
하이브리드 앱이란?
네이티브 앱 + 웹앱
웹 기술로 개발하여 네이티브 앱의 웹뷰를 통해 실행
※ 웹뷰: 네이티브 애플리케이션에서 웹 페이지를 표시하기 위해 사용되는 컴포넌트
React-Native 는 각 플랫폼의 네이티브 코드와 직접적인 상호작용 가능
안드로이드나 IOS 각각의 네이티브 UI 컴포넌트를 사용해서 구축
즉, 같은 코드를 사용해도 결과가 플랫폼에따라 다르게 나옴
일관성있는 UX 설계에 도움
React-Native 의 동작 매커니즘을 살펴보자:
1. Javascript 로 작성된 코드는 하나의 큰 번들 파일로 번들링된다.
2. 이 번들 파일은 애플리케이션이 실행될 때 Javascript Thread 에서 처리됨.
3. Bridge 가 Javascript 와 네이티브 코드간의 상호작용을 중재하며, Javascript 에서 발생한 명령을 네이티브 스레드로 전달하여 실제 네이티브 코드의 실행을 가능하게 함. 또한, 네이티브 코드가 실행한 결과를 Javascript 코드로 다시 전달한다.
위 과정에서 진행되는 통신 지연은 순수 네이티브 앱 보다 성능 저하가 발생
React Native 프로젝트를 생성, 관리, 빌드하고 디버깅하는데 사용되는 표준 도구