[React Native] React Native란?

shooting star·2023년 6월 30일

React Native란?

React Native는 크로스 플랫폼으로 페이스북이 개발한 오픈소스 모바일 애플리케이션 프레임워크로 JavaScript하나로 Android, iOS, Web 대응이 가능하다.

이러한 크로스 플랫폼이 가능한 이유는 JavaScript로 작성된 코드를 Bridge를 통해서 각 플랫폼에 맞는 Native UI 요소에 접근하는 인터페이스를 제공하여 Native 변환을 해주는 것이다.

React Native의 장단점

장점

  • 하나의 코드로 관리가 가능하고 러닝커브가 높은 React를 사용한다는 것이다. 즉, 크로스 플랫폼이라는 장점을 가지고 있다.
  • 심사제출이 없이 코드푸시로 유저들이 바로 업데이트르 받을 수 있어서 배포까지의 비용은 매우 절감된다. 이는 React의 최고의 장점이다. 물론 JavaScript 영역이 아닌 앱스토어의 영역이 바뀌면 업데이트가 필요하기도 하다.
  • Fast Refresh라는 장점이 있다. 컴파일하고 새로고침하지 않아도 변경된 코드를 저장만 해도 바로 화면에 적용되어 빠른 개발이 가능하다.
  • 오픈소스라는 장점이 있다. 규모도 크기 때문에 개발을 하기에 용이하다.

단점

  • Native를 사용하기 때문에 Native를 건드리게 되면 iOS와 Android의 폴더구조와 파일에 대한 지식이 필요하다.
  • 일부 라이브러리가 버그가 생기면 수정될때까지 기다려야 한다.
  • Bridge를 사용하기 때문에 성능이 하락하기도 한다. 그래서 어떤 기능을 개발할지 잘 확인해야한다.
  • 잦은 업데이트로 버전을 맞추는데 오류가 많이 생길 수 있다.

Expo Cli와 React Native Cli

Expo Cli

React Native 앱을 쉽고 빠르게 구축할 수 있도록 해준다. 그 이유는 기본적으로 제공되는 API와 라이브러리가 많기 때문에 초반 개발은 단순화시켜 편리하다. 그리고 Expo Go 어플만 있다면 기기에 상관없이 프로젝트를 실행할 수 있다. 즉, 컴퓨터에 기기를 연결할 필요가 없다. 하지만 제공되는 API만 사용해야해서 기능 구현의 자유도가 낮다.

React Native Cli

고도화된 기능 개발을 가능하게 하고 개발의 높은 자유도를 제공해준다. 그 이유는 네이티브 모듈을 연결 가능해서 다양한 라이브러리 사용할 수 있다. 단점으로는 기본적으로 제공되는 라이브러리가 적어서 필요한 것이 있다면 직접 설치해야한다. 그리고 Android와 Xcode를 설치해야하고 아이폰 출시를 위해서는 Mac을 통한 개발이 필수적이다. 왜냐하면 Xcode가 맥에서만 설치가 되기 때문이다. 그리고 Android와 iOS에 대한 기본적인 폴더 구조에 대한 이해가 필요하다.

정리해보면 무엇을 구현할지에 따라서 무엇을 선택할지 달라질 것이다. 구현할려고 하는 기능이 Expo에서 지원이 가능한지 살펴보면 어떤 Cli를 사용해야할지 결론이 나올 것이다.

React Native Cli를 통해서 개발해야하는데 Mac가 없다면 우선은 Android로 먼저 개발하고 성공적이면 Mac으로 개발해도 좋다. 그리고 이젝트 작업을 통해서 Expo Cli에서 탈출해서 React Native로 넘어가도 문제가 없다.

0개의 댓글