일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 슬라이더
- React.js
- 웹
- js
- 렌더링
- github
- 웹스토리지
- 슬라이드
- 자바스크립트
- 배너 슬라이더
- 인덱스된 데이터베이스
- 배포
- slide
- react
- deploy
- vite
- 리액트배포
- 리액트
- HTTP
- banner
- javascript
- Github Pages
- 배열
- 배너
- 비동기 함수
- IndexedDB
- dnd-kit
- 자바스크립트 배열
- 웹사이트
- array
- Today
- Total
Somedding
React Native란? 본문
리액트 네이티브(React Native)란?
리액트 네이티브(React Native)란 페이스북에서 개발한 오픈 소스 모바일 애플리케이션 프레임워크다.
JavaScript와 React를 사용하여 안드로이드, ios 모두에서 동작하는 네이티브 앱을 만들 수 있다.
즉, 웹 개발에 쓰이는 JavaScript와 React로 앱 개발까지 가능하게 해 준다.
리액트 네이티브의 장점
1. 크로스 플랫폼 개발
리액트 네이티브는 크로스 플랫폼 중에서 대표적인 프레임 워크로 손꼽힌다. 리액트 네이티브는 단일 코드베이스를 사용하여 안드로이드와 ios 플랫폼 양쪽에서 동작하는 앱을 만들 수 있다.
기존에는 안드로이드는 Kotlin, ios는 Swift 등을 통해 앱을 따로 개발해야 했다. 두 운영체제의 앱은 시스템 구조가 달라서 같은 앱을 2개 만드는 것과 같다. 또한, 유지 보수와 업데이트 역시 2배의 노력이 필요하다. 그렇게 크로스 플랫폼이 등장하게 되었고, 이러한 크로스 플랫폼을 통해 하나의 개발 언어로 두 운영체제에서 동시에 앱을 만들 수 있고, 유지 보수 역시 한 번에 할 수 있다.
2. 플랫폼 특화 렌더링 API 활용
리액트 네이티브는 각 플랫폼에 특화된 렌더링 API를 사용한다. 각 플랫폼의 네이티브 UI 구성 요소를 사용하여 렌더링 되므로, 각 플랫폼의 표준과 일치하게 된다. 따라서 리액트 네이티브로 개발된 앱은 각 플랫폼에서 자연스럽게 동작하면서, 더 나은 성능을 제공한다.
3. 커뮤니티 지원과 확장성
리액트 네이티브는 활발하고 거대한 개발자 커뮤니티를 보유하고 있다. 커뮤니티가 잘 되어 있기 때문에 개발을 할 때에 더 풍부한 정보를 이용할 수 있다.
이 외에도 많은 장점이 있으며, 리액트를 기반으로 개발된 프레임 워크이기 때문에 리액트의 장점 역시 가지고 있다.
리액트 네이티브의 단점
1. 네이티브 앱과의 비교
또한, 안드로이드나 ios에서 기존 기능의 업데이트나 새로운 기능이 나왔을 때, 리액트 네이티브에서 해당 기능을 사용하기 위해서는 리액트 네이티브에서의 업데이트를 기다리거나, 직접 네이티브 모듈을 작성해야 한다.
리액트 네이티브로 개발된 앱은 각각의 플랫폼에서 네이티브 코드로 직접 작성된 앱보다는 당연히 성능이 떨어질 수 있다.
2. 네이티브 모듈 연동
리액트 네이티브로 앱을 개발하면서 어쩔 수 없이 네이티브 모듈을 써야 하는 경우가 있다. 하지만 이는 몇몇 경우에 꽤 복잡하거나 어려울 뿐만 아니라 해당 네이티브에 대한 이해도 필요하다.
단점 역시 이 외에도 많이 존재한다.
React Native 개발
리액트 네이티브를 개발하는 방법은 2가지가 있다.
- Expo CLI
- React Native CLI
2가지의 방법 모두 장단점을 가지고 있어서 원하는 방법으로 개발을 시작하면 된다.
Expo CLI(Expo Command Line Interface)
Expo CLI는 리액트 네이티브를 쉽게 개발하고 관리할 수 있도록 도와주는 도구이다.
장점
- 초기 설정이 간단하며, 별도의 네이티브 개발 환경 없이 시작할 수 있다. 즉, 리액트 네이티브 개발을 쉽게 시작할 수 있다.
- 배포가 편리하며 업데이트를 쉽게 할 수 있다.
단점
- 네이티브 파일에 직접 접근하기 어렵다. Expo CLI는 빠르고 쉽게 개발할 수 있도록 많은 추상화를 제공하지만, 이로 인해 네이티브 코드에 직접적인 액세스가 제한된다.
- Expo SDK에서 제공하는 API만 사용할 수 있다. 물론 Expo SDK에는 다양한 모듈을 포함하고 있지만, 제공되지 않은 기능에 대해서는 사용할 수 없다. 이런 경우에는 React Native CLI를 사용해야 한다.
React Native CLI(React Native Command Line Interface)
React Native CLI는 직접 네이티브로 개발을 할 수 있도록 도와주는 도구이다.
장점
- 네이티브 코드에 직접 접근할 수 있어, 특정 네이티브 기능의 직접 통합이나 수정이 가능하다.
- Expo CLI에 비해 자유도가 높다. 또한, Expo SDK에서 제공하는 API 역시 React Native CLI에서 사용할 수 있다.
단점
- 개발을 시작하기까지 설정할 것들이 많고 복잡하다. 안드로이드와 ios의 각 플랫폼에 대한 설정이 필요하다. 안드로이드를 위한 Android Studio를 설치해야 하며, ios를 위한 XCode를 설치해야 한다.
- Mac OS가 없으면 ios용 앱을 빌드할 수 없다.
- 배포와 업데이트 시간이 Expo CLI에 비해 오래 걸린다.
선택 방법
Expo CLI를 선택하는 경우
- 빠르게 시작하고 간단한 애플리케이션을 개발하려는 경우
- 네이티브 코드에 대한 걱정 없이 개발하고 싶은 경우
React Native CLI를 선택하는 경우
- 네이티브 코드에 직접 액세스 하고 더 많은 제어를 원할 경우
- 네이티브 모듈을 사용하거나 네이티브 코드를 수정해야 하는 고급 기능이 필요한 경우
글 내용 중, 잘못됐거나 더 알아야 하는 지식이 있다면 댓글로 남겨주시면 감사하겠습니다!
모두 좋은 하루 보내세요:)