반응형
해당 글의 목적은 React Native 개발을 하기에 앞서서, React Native에 대한 정의와 개발 방식(expo-cli / react-natvie-cli)에 대해 장단점을 알고 선택을 돕기 위한 목적으로 작성한 글입니다.
1) React Native
💡 React Native 란?
- 리액트 네이티브는 페이스북에서 만든 오픈소스 모바일 애플리케이션 프레임워크입니다.
- JavsScript로 개발하며 IOS나 Andriod, Web, UWP에 대한 모바일앱을 동시에 개발을 할 수 있는 크로스 플랫폼입니다.
[ 더 알아보기 ]
💡 크로스 플랫폼(Cross Platform)이란?
- 여러 플랫폼에서 동작하는 애플리케이션 개발 방법을 의미합니다. 하나의 코드로 여러 플랫폼에 대응할 수 있으며, 개발 비용과 시간을 절약할 수 있습니다.
- React Native, Flutter 등이 대표적인 크로스 플랫폼 프레임워크입니다.
2) React Native 개발 방법
1. Expo CLI
💡 Expo-cli 란?
- 보편적인 React 애플리케이션을 위한 프레임워크이자 플랫폼입니다.
- 동일한 JavaScript/TypeScript 코드베이스에서 iOS, Android 및 웹 앱을 개발, 빌드, 배포 및 빠르게 반복하는 데 도움이 되는 React Native 및 기본 플랫폼을 기반으로 구축된 도구 및 서비스 세트입니다.
0. 주요 장단점 요약
분류 | Expo-cli |
장점 | - 초기 설정이 쉽고 빠르게 개발이 가능 - 다양한 라이브러리와 플러그인 제공 |
단점 | - 앱 사이즈가 큼 - 빌드 속도가 느림 - 네이티브 모듈의 사용이 제한됨 |
1. Expo CLI 장점
- 초기 구성이 쉬어서 빠르고 간편하게 설치가 가능하며 React Native를 처음 개발하는 사람에게 편리하다.
- React Natvie를 위한 기본 설정이 미리 구성이 되었다는 장점이 있다.
- 네이티브 파일들을 개발자에게 숨겨두고 Expo가 자동으로 관리를 해준다
- Android / Xcode를 설치하지 않아도 QR코드를 통해서 해당 프로젝트를 실행할 수 있게 해 준다.
- Apple / Google Store에 배포와 업데이트를 하기에 간편하다.
- 배포마다 검사를 받지 않는다.
- Expo Wrapper를 포함한 Standalone 앱 배포가 가능하다.
2. Expo CLI 단점
- OS Layer와 상호작용이 불가능하다.
- Java, kotlin, Object-C, Swiftf로 작성된 네이티브 모듈을 추가할 수 없다.
- 일부 IOS 및 Andriod API를 사용할 수 없다.
- APP의 15 ~ 25MB로 기본 파일 크기가 크다
- 기능이 많은 앱 개발에는 부적합하다.
- 블루투스 이용 불가
- Eject 기능을 통해 설정하는 작업이 필요해서 오히려 번거로워질 수 있다.
3. Expo CLI Quickstart 수행 방법
# expo-cli 기반 React Native 프로젝트 생성
$ expo init [프로젝트 명]
# React 기반 Expo CLI
$ npm install -g expo-cli
# or
$ yarn global add expo-cli
2. React Native CLI
💡 React-native-cli 란?
- 모바일 개발에 이미 익숙하다면 React Native CLI를 사용하는 것이 좋습니다. 시작하려면 Xcode 또는 Android Studio 설치 및 설정이 필요합니다.
0. 주요 장단점 요약
분류 | react-native-cli |
장점 | - 빠른 빌드 속도 - 네이티브 모듈에 대한 높은 자유도 |
단점 | - 네이티브 모듈을 사용하는 경우 설정이 복잡함 |
1. React Native CLI 장점
- 직접 네이티브로 애플리케이션을 개발할 수 있다.
- 자기가 원하는 언어로 추가 개발이 가능하다- 커스텀 네이티브 모듈
- OS Layer와 상호작용이 가능하다.
- 네이티브 파일들을 직접 다룰 수 있다.
- 네이티브 모듈을 사용할 수 있다.
- 필요한 기능이 있는 경우, 모듈을 직접 만들어 사용할 수 있다.
- Expo 패키지 이용이 가능하다.
- Android Studio와 XCode에서도 빌드, 배포가 가능하다.
2. React Native CLI 단점
- 프로젝트를 설정하는 데 있어서 올바른 방식으로 설정하기가 어렵고 초기 환경 구성이 오래 걸린다.
- 프로젝트를 실행하려면 Android / Xcode를 모두 설치해야 하여 빌드 및 배포를 해야 한다.
- Mac OS 없으면 IOS용 앱을 빌드할 수 없다.
- 배포와 업데이트 시간이 상대적으로 오래 걸린다.
- 안드로이드, IOS에 대한 폴더 구조에 대한 기본지식이 필요하다.
3. React Native Quickstart 수행 방법
# React Native 프로젝트 생성
$ npx react-native init [프로젝트 명]
# React Native에 특정 버전으로 프로젝트 생성
$ npx react-native init [프로젝트 명] --version X.XX.X
# React Native에 Typescript 기반의 프로젝트 생성
$ npx react-native init [프로젝트 명] --template react-native-template-typescript
$ yarn add @types/react @types/react-native --dev
# CRNA (Create-react-native-app) 방식으로 프로젝트 생성
$ npm install -g create-react-native-app
$ create-react-native-app [프로젝트 명]
# react-native-cli install
$ npm install -g react-native-cli
# or
$ yarn global add react-native-cli
# version check
$ react-native --version
오늘도 감사합니다😀
반응형
'React & React Native > 이해하기' 카테고리의 다른 글
[RN] React Native 빌드 캐시 초기화 및 최신 버전 설치 명령어 : react-native-cli, yarn, watchman, metro, gradle, adb (0) | 2023.09.11 |
---|---|
[React] 캐시 무효화(Cache Busting) 이해하고 적용하기 (2) | 2022.10.14 |
[React] router / router-dom v5 → v6 버전 업 이해하기 (2) | 2022.06.29 |
[React] 함수형 컴포넌트 생명주기(lifecycle) 이해하기 (2) | 2022.06.12 |
[React] 클래스 컴포넌트 생명주기(lifecycle) 이해하기 (0) | 2022.06.06 |