1. React Native란

페이스북에서 개발한 크로스 플랫폼 개발 프레임워크로, 웹과 서버에서 널리 사용되는 javascript를 언어로 사용한다. 웹 프론트엔드 개발에 대표적인 라이브러리인 react를 기반으로 개발된 프레임워크 이기에 react를 경험해본 개발자거나 웹 개발에 익숙한 개발자는 react native를 사용하면 비교적 쉽게 모바일 앱을 만들 수 있다.

안드로이드, ios, 웹, UWP용 애플리케이션을 개발하기 위해 사용되며, 개발자들이 네이티브 플랫폼 기능과 더불어 리액트 사용할 수 있게 한다. 번역기 같은 역할을 하는 것이다.

react native는 다양한 장점을 가지고 있어 많은 기업에서 사용하고 있다. 대표적으로 페이스북, 인스타그램, 에어비앤비 등이 있다.

현재 수많은 기업에서 스택을 선정하여 운영하고 있다.

 

 

 

2. React Native를 사용하는 이유

 

 

   1) 효율적인 개발 및 관리

react native는 단일 코드 베이스 (앱을 만들기 위해 필요한 소스 코드의 모임)로 ios와 android 앱을 동시에 개발할 수 있어 개발 속도를 높일 뿐만 아니라, 효과적으로 관리하기에 적합하다.

native 앱으로 ios와 안드로이드에서 앱을 개발할 경우 두 개의 코드 베이스를 관리해야 하는데, react native의 단일 코드 베이스로 관리하면 관리해야 하는 코드의 양은 절반으로 줄어들기 때문에, 개발 속도와 업무 효율성 모두 높아진다. 또한 두 플랫폼에 대한 별도의 개발팀이 필요하지 않기 때문에 인력 및 운영 비용을 절감할 수 있어 프로젝트를 진행하는 기업 입장에서는 효율적인 개발 및 관리가 가능하다

 

   2) 뛰어난 성능 제공

react native로 개발된 앱은 네이티브 앱과 유사한 성능을 제공한다. 자바스크립트 코드를 네이티브 코드로 변환하는 역할을 하는 모듈을 통해 빠른 성능을 지원한다. 사용자는 빠른 반응 속도와 부드러운 애니메이션을 경험하며 앱을 사용할 수 있다.

 

   3) 개발 커뮤니티 활성화

개발자들이 개발할 때 구글에서 검색을 하는 시간이 가장 많다는 밈이 있을 정도로 개발 시 필요한 기술에 대해 검색해서 찾고, 난관에 부딪힐 때 검색으로 해결하는 경우가 많다. 이미 많은 서비스에서 이용되고 있는 react native는 커뮤니티가 활성화되어있어 개발을 할 때 참고할 자료가 풍부하다. 또한 react native 생태계에서는 다양한 라이브러리와 플러그인이 개발되어 있기에 원하는 특정 기능을 라이브러리에서 찾는다면 직접 개발하지 않고, 다른 개발자가 만들어 둔 것을 참조하여 사용하기만 하면 된다.

 

   4) OTA(Over-The-Air) 업데이트

ota 업데이트를 사용해 업데이트를 빠르게 진행할 수 있다. 이는 버그 수정이나 디자인 변경을 할 때 유용하게 사용할 수 있다. 일반적으로 네이티브 앱의 경우 간단한 기능이나 텍스트 등을 수정하려면 스토어에 등록한 후, 사용자 업데이트가 가능하다. 앱의 수정은 금방 할지라도 스토어에서 검수 과정이 24시간이 소요되기 때문에 사용자에게 업데이트를 위해 전달되는 체감 시간은 오래 걸린다. 이에 비해 react native 앱은 ota 업데이트를 활용하기 때문에 빠른 업데이트가 가능하다. ota 업데이트는 앱 업데이트를 위해 스토어를 거치지 않고 원격 서버를 통해 업데이트를 하는 기능을 말하는데, 이를 이용해서 업데이트를 하면 사용자가 앱을 다시 시작하기만 해도 앱 업데이트가 가능하다. 스토어에서의 검수 과정이 생략되기 때문에 기능을 추가하거나 버그 수정이나 디자인 변경 정도를 할 때는 ota 업데이트를 통해 빠르게 배포할 수 있다.단 큰 변화를 위한 업데이트가 필요한 경우에는 네이티브 앱과 동일하게 스토어에 올린 후 검수 과정을 거쳐야 한다.

 

 

3. 크로스 플랫폼 앱이란

   1) 크로스 플랫폼 앱은 하나의 소스 코드로 안드로이드, iOS에서 똑같이 작동하는 앱을 의미하며, 네이티브 앱과는 대조되는 개념이다

 

   2) 네이티브앱은 각 운영 체제에 맞춰 따로 개발 및 운영이 필요하다. 어떻게 보면 당연한게 각 앱마다 사용하는 프로그래밍 언어도 다르고 개발하는 플랫폼도 다를 것이기 때문이다. 

 

이런 한계점을 개선하고자 생긴게 크로스 플랫폼 앱이다. 크로스 플랫폼 앱에는 대표적으로 React native, Flutter가 있다.

 

 

4. React  VS  React Native

 

 

5. 단점

   1) 러닝 커브

기존에 os 네이티브 앱을 개발하던 개발자는 새로운 javascript를 학습해야 한다. 그리고 리액트를 접하지 않았던 개발자들은 새로운 개념인 jsx의 리액트 고유 방식을 이해하고 리액트가 사용하는 props, state등의 개발 방식을 이해해야 한다

 

   2) 네이티브보다 성능이 떨어진다

리액트 네이티브는 네이티브 브릿지를 사용하여 네이티브 스레드를 연결시켜 동작하는 하이브리드앱이기 때문에 네이티브 개발 방식보다는 당연하게 성능이 떨어진다. 일반적인 애플리케이션을 만단다고 한다면 문제는 없지만 애니메이션 60프레임 이상을 사용하거나 자바스크립트 스레드애서 5ms보다 시간이 걸리는 처리를 하게 된다면 성능 저하를 경함할 수 있다

 

 

 

 

+ Recent posts