React Native 프로젝트 시작
1. React Native를 선택한 이유
이번 프로젝트는 웹이 아닌 앱만 제공하는 설치형 서비스를 목표로 했다.
iOS와 Android를 각각 네이티브로 개발하기엔 개발·유지 비용이 부담되기 때문에,
하나의 코드베이스로 두 플랫폼을 동시에 지원할 수 있는 React Native를 선택했다.
React Native는 이라는 특징이 있다.
- JavaScript / TypeScript 기반
- React 문법 그대로 사용
- 실제 네이티브 컴포넌트로 렌더링
웹(React) 경험을 그대로 활용하면서도 네이티브 앱에 가까운 성능과 UX를 낼 수 있다.
2. 프로젝트 시작 시 Expo를 사용한 이유
React Native는 순수 CLI 방식으로 시작할 수도 있지만,
초기 환경 설정과 네이티브 빌드 설정이 복잡한 편이다.
이번 프로젝트에서는:
- 빠른 시작
- 설정 최소화
- 실기기에서 즉시 실행
이 더 중요했기 때문에 Expo 기반으로 프로젝트를 시작했다.
Expo를 사용하면:
- Android / iOS 개발 환경을 미리 갖추지 않아도 실행 가능
- QR 코드 스캔만으로 실기기 테스트 가능
- 파일 첨부, 알림, 카메라 등 앱에서 자주 쓰는 기능을 기본 지원
즉, 앱 개발에 집중할 수 있는 환경을 바로 만들 수 있다.
3. Expo란 무엇인가?
Expo는 React Native를 더 쉽게 쓰기 위한 도구이자 플랫폼다.
역할을 정리하면:
- React Native 위에서 동작
- 네이티브 설정을 감춰줌
- 공통 API 제공 (알림, 파일, 센서 등)
개발 흐름은 다음과 같다:
초기에는 Expo Go를 통해 앱을 설치 없이 실행하고,
필요해지면 실제 설치형 앱(APK, IPA) 으로 빌드할 수 있다.
4. Expo의 제약사항과 해결 방법
Expo는 React Native를 쉽게 시작할 수 있는 도구지만,
초기에는 몇 가지 분명한 제약이 존재했다.
과거 Expo의 주요 제약
- Expo Go에서는 Expo SDK에 포함된 기능만 사용 가능
- 커스텀 네이티브 코드(Swift / Kotlin) 직접 추가 불가
- 특정 네이티브 라이브러리 사용 불가
- 기본 앱 용량이 큰 편
이 때문에 Expo는 “프로토타입용 도구”라는 인식이 강했다.
하지만 현재는 상황이 많이 달라졌다.
Expo는 Prebuild와 Dev Client를 도입하면서
기존의 구조적 한계를 상당 부분 해소했다.
- 필요 시 네이티브 코드 직접 추가 가능
- 원하는 네이티브 라이브러리 설치 가능
- Expo의 개발 편의성을 유지하면서 네이티브 확장 가능
즉, Expo는 더 이상
고정된 제약 안에서만 쓰는 도구가 아니라,
필요에 따라 점진적으로 확장할 수 있는 구조로 발전했다.
'개발일지' 카테고리의 다른 글
| [개발일지_safeHome] 13. SSE 샘플 추가 (0) | 2026.01.15 |
|---|---|
| [개발일지_safeHome] 11. redis 세팅 추가 (0) | 2025.12.29 |
| [개발일지_safeHome] 10. 등기부등본 분석 설계는 어떻게 할 것인가? (0) | 2025.12.29 |
| [개발일지_safeHome] 9. swagger 세팅 (0) | 2025.12.28 |
| [개발일지_safeHome] 8. Custom Exception 개발 (0) | 2025.12.28 |