Frontend/React
[React] React와 React Native의 차이 비교
sol_git
2024. 12. 14. 10:00
요즘 채용 시장을 쭉 훑어보니 Vue보다 React의 비중이 훨씬 높은 것 같다.
기존에 Vue 기반 프로젝트를 찐하게 해오던 상황이라, React로도 경험을 쌓아봐야할 것 같아 제대로 공부해보기로 했다.
이미 SPA 프레임워크에 대한 이해는 어느 정도 되어있는 상황이라, 빨리 적응할 수 있지 않을까?
React와 React Native
- 두개는 용도가 다르기 때문에, 프로젝트의 목적에 따라 어떤 것을 사용할지 결정해야 한다.
항목 | React | React Native |
플랫폼 | 웹 (PC/모바일 웹 브라우저) | iOS, Android (모바일 앱) |
언어 | HTML, CSS (JSX), JavaScript/TS | JavaScript/TS (네이티브 컴포넌트) |
렌더링 방식 | DOM (HTML) 렌더링 | 네이티브 뷰(Android, iOS) 렌더링 |
UI/스타일링 | CSS, SCSS, Tailwind CSS 등 | Flexbox 기반 스타일 (CSS와 유사) |
배포 방식 | URL(웹사이트로 배포) | App Store, Google Play 배포 |
재사용성 | 웹 전용 코드 | iOS/Android에 동일 코드 사용 가능 |
성능 | 빠른 웹 성능 | 네이티브 앱 수준의 성능 |
개발 속도 | 빠름 (브라우저 바로 미리보기) | iOS/Android 빌드에 시간 소요 |
빌드 및 배포 | Vercel, Netlify, AWS 등 | Expo, Xcode, Android Studio 필요 |
학습 곡선 | 상대적으로 쉬움 | React + 네이티브 모바일 지식 필요 |
사용 사례 | 웹 애플리케이션, 웹 포트폴리오 | 모바일 앱 (iOS/Android) |
✨ 기술적 차이점
항목 | React | React Native |
스타일링 방법 | Tailwind, SCSS, CSS | Flexbox 스타일링 (CSS와 비슷) |
UI 구성 요소 | <div>, <button>, <span> | <View>, <Text>, <Button> |
네이티브 API | X | GPS, 블루투스, 카메라 등 가능 |
핫 리로딩 | 빠름 (웹 브라우저) | 느림 (iOS, Andriod 빌드 필요) |
배포 속도 | 빠름 (Vercel, Netlify) | 느림 (App Store / Google Play 검수) |
개발 난이도 | 상대적으로 쉬움 | 상대적으로 어려움 (iOS 빌드 필요) |
📌 React 가 적합한 경우
- 웹사이트 / 웹 애플리케이션을 만들 때
- SPA (단일 페이지 애플리케이션) 개발이 목표일 때
- 반응형 디자인 (데스크톱 / 모바일 웹 동시 대응)
- 브라우저 접근이 필요할 경우 (URL 공유)
📌 React Native 가 적합한 경우
- 모바일 앱 만들 때 (iOS / Android)
- 앱스토어 / 구글 플레이에 배포 시
- 카메라, 위치, 알림, 센서, 블루투스 등 네이티브 기능 사용 시
개발할 프로젝트의 아키텍처에 따라 선택해서 사용해야겠다.