
IT 기술이 빠르게 발전함에 따라 대중의 요구사항과 트렌드가 빠르게 변하고 있음에 따라 이에 맞춰 새로운 서비스를 만들때 중요한 것은 빠르게 출시하여 선보여야 합니다.
그리고 출시한 서비스가 대중들에게 혹평을 받거나 서비스내에 오류들이 발생했을 경우, 빠르게 보완하고 유지보수 및 업데이트를 효율적으로 하는 것이 매우 중요합니다.
하지만 모바일 운영체제(iOS, AOS)의 앱 시스템 구조가 다르기에 앱 유지보수와 업데이트를 할 때 2배의 노력이 필요합니다.
이러한 비 효율적인 상황을 개선하기 위해 나온 방법이 크로스 플랫폼입니다.
크래스 플랫폼 중에서도 대표적인 프레임워크로 손꼽히는 React Native가 있습니다.
크로스 플랫폼(Cross Platform)
하나의 개발 언어로 iOS와 AOS에서 앱을 동시에 만들 수 있고, 유지 보수도 한 번에 할 수 있는 특징을 가지고 있어 모바일 앱 개발 분야에서 여전히 주목을 받고 있습니다.
네이티브 앱보다 실행 속도는 조금 느리지만 개발 시간과 비용을 크게 절약할 수 있다는 장점이 있습니다.
2015년에 페이스북(현 META)이 개발한 오픈 소스 모바일 애플리케이션 프레임워크입니다,
React Native는 AOS와 iOS 운영체제에서 모두 동작하는 프레임워크로, 네이티브 파트와 자바스크립트 파트로 구성됩니다.
네이티브 파트는 기본적으로 제공되는 모듈을 그대로 사용하므로 개발자는 자바스크립트 코드만 작성하여 AOS 앱과 iOS 앱을 동시에 만들 수 있습니다.
웹 프론트엔드 개발에 대표적인 라이브러리인 React를 기반으로 개발된 프레임워크이기에 React를 경험해 본 개발자나 웹 개발에 익숙한 개발자는 React Native를 사용하면 비교적 쉽게 접할 수 있습니다.
React Native를 다양한 장점을 가지고 있어 많은 기업에서 사용하고 있습니다.
대표적으로 페이스북, 인스타그램, 스카이프, 에어비엔비의 앱이 React Native로 제작되었습니다.
여러 프레임워크 중에서도 React Native를 사용하는 이유는 그만큼 장점이 크기때문입니다.
React Native는 분명 JavaScript로 개발한다고 했습니다.
하지만 AOS는 Java, iOS는 Objective-C 언어를 사용하는데 어떻게 두 운영체제가 동작하는지 궁금하실 것 같습니다.
가능한 이유는 바로 브릿지(Bridge)라는 기술 덕분입니다.
AOS 앱은 Java로 구현된 안드로이드 프레임워크를, iOS앱은 Objective-C로 구현된 iOS UIKit 프레임워크를 사용하여 만듭니다.
이 두 프레임워크는 이름에 'View' 자가 들어간 많은 클래스를 제공합니다.
React Native는 웹 브라우저에서 자바스크립트 엔진 부분만 떼어 내어 자바스크립트로 구현된 'View' 클래스를 네이티브 쪽 안드로이드 프레임워크 또는 아이폰(iOS) UIKit 프레임워크의 'View' 클래스 호출로 연결되는 방식으로 동작합니다.

1. 이벤트 발생(터치, 리스너 등)
2. 발생한 이벤트를 Native(AOS, iOS)에서 감지
3. 브릿지를 통해 JavaScript로 전송
4. JavaScript에서 이벤트 처리
5. JavaScript에서 native method를 호출하거나 UI 업데이트 요청
6. 브릿지를 통해 Native로 전송
7. Native(AOS/iOS)에서 요청을 수행
8. Native가 UI를 업데이트