| React | React Native | |
|---|---|---|
| 사용 목적 | 웹 애플리케이션 개발 | 모바일(Android, iOS) 애플리케이션 개발 |
| 렌더링 방식 | ReactDOM을 사용하여 HTML을 렌더링 | AppRegistry를 사용하여 네이티브 UI를 렌더링 |
| UI 구성 요소 | HTML 태그 (div, span, h1 등) | 네이티브 컴포넌트 (View, Text, Button 등) |
| 스타일링 방식 | CSS (.css 파일 또는 styled-components) | StyleSheet.create()를 사용하여 JavaScript 내에서 스타일 적용 |
| 네이티브 코드 사용 | HTML + CSS + JS 기반 | 네이티브 코드와 직접 통신 (Native Modules) |
| 플랫폼 종속성 | 웹 브라우저에서 실행 | 모바일(iOS, Android)에서 실행 |
| 성능 | 빠른 렌더링 성능 제공 | Native Bridge로 인해 약간 성능 저하 발생 |
| 패키지 관리 | npm, yarn | npm, yarn, react-native CLI 사용 |
| 배포 방식 | 웹 서버에서 제공 | 앱 스토어(Google Play, App Store) 배포 필요 |
| 목표 | 선택해야 할 기술 |
|---|---|
| 🌐 웹사이트, 웹 애플리케이션 | React |
| 📱 모바일 애플리케이션(iOS, Android) | React Native |
| 🏆 반응형 웹 (모바일/PC 지원) | React + CSS 미디어 쿼리 |
| 🔗 PWA (Progressive Web App, 웹앱처럼 동작하는 웹) | React + PWA 지원 |
| 📲 하이브리드 앱 (네이티브와 웹을 혼합한 앱) | React Native + WebView 또는 Ionic, Flutter |
service worker를 활용해 오프라인 지원 가능| 구현하려는 목표 | 추천 기술 |
|---|---|
| 일반 웹사이트 (PC, 모바일 웹 포함) | React |
| 반응형 웹 (PC/모바일 지원) | React + CSS Media Queries |
| 모바일 앱 (iOS, Android 동시 개발) | React Native |
| 고성능 네이티브 앱 (게임, 영상 처리 등) | Swift(iOS), Kotlin(Android), Flutter |
💡 결론적으로
💡 React 개발자라면 React Native를 쉽게 배울 수 있지만, 네이티브 개발 지식이 필요할 수도 있음.