React Native 앱 개발을 위한 프레임워크 활용
React Conf에서 우리는 React Native 앱을 시작하기 위한 최적의 도구에 대한 가이드를 업데이트했다. 바로 React Native 프레임워크다. 이는 프로덕션 준비가 된 앱을 구축하는 데 필요한 모든 API를 제공하는 도구 상자다.
Expo와 같은 React Native 프레임워크를 사용하는 것이 이제 새로운 앱을 만드는 권장 방식이다.
이 블로그 포스트에서는 React Native 프레임워크가 무엇인지, 그리고 새로운 프로젝트를 시작하는 React Native 개발자에게 어떤 의미인지 자세히 설명한다.
React Native 프레임워크란 무엇인가?
프로덕션 앱을 개발해본 적이 있다면, 언젠가는 반드시 해결해야 할 공통적인 문제들이 있다는 것을 알 것이다.
웹이나 네이티브 앱을 개발할 때, 사용자가 다양한 화면을 탐색하고 데이터를 가져오며 사용자 상태를 저장할 수 있도록 구현해야 한다. 특히 네이티브 앱의 경우 더 많은 문제를 처리해야 한다. React Native 버전 간 네이티브 코드를 업그레이드하고, 모든 의존성의 호환 버전을 관리하며, 네이티브 빌드 도구를 다뤄야 한다.
적절한 도구 없이 아이디어에서 프로덕션까지 앱을 만드는 것은 쉽지 않다.
우리는 여러분이 반복적으로 공통 문제를 해결하는 대신, 사용자를 위한 멋진 애플리케이션과 기능을 개발하는 데 집중할 수 있기를 바란다.
그래서 우리는 React Native를 경험하는 가장 좋은 방법은 프로덕션 준비가 된 애플리케이션을 구축하는 데 필요한 모든 도구를 제공하는 프레임워크를 사용하는 것이라고 믿는다.
우리는 프레임워크를 사용하거나 자신만의 프레임워크를 구축하는 두 가지 선택지가 있다고 생각한다.
자신만의 프레임워크를 구축하는 것도 나쁘지 않다. 라우팅, 네비게이션, 배포 등을 위한 독자적인 솔루션을 만드는 것은 가능하다. Meta나 Microsoft 같은 대기업들은 내부적으로 자체 프레임워크를 구축해 기존 앱에 깊이 통합한다. 하지만 대부분의 사람들은 기존 프레임워크를 사용하는 것이 더 나을 것이다.
웹에서 React를 사용해본 적이 있다면, 프로덕션 등급 React 프레임워크와 유사한 개념에 익숙할 것이다.
현재로서는 React Native를 위한 유일하게 추천하는 커뮤니티 프레임워크는 Expo다. Expo 팀은 React Native 초기부터 생태계에 투자해왔고, 현재 Expo가 제공하는 개발자 경험은 최고 수준이라고 생각한다.
Expo 프레임워크는 무료이며 오픈 소스로 유지될 것이다. 반면 Expo Application Services(EAS)는 선택적인 유료 서비스다.
최근 Expo를 사용해보지 않았다면, Kadi @ Expo의 이 발표를 놓치지 말자. 그녀는 2024년에 Expo로 무엇을 할 수 있는지 보여준다.
또한 웹사이트의 시작하기 페이지도 이 추천 사항을 반영해 업데이트했다.
프레임워크가 미치는 영향
이미 Expo와 같은 권장 프레임워크를 사용 중이라면 별도의 조치가 필요 없다.
기존 앱을 Expo로 마이그레이션하려면 공식 Expo 웹사이트에서 안내를 확인할 수 있다. Expo는 React Native 버전 업그레이드를 더 쉽게 해주고, 개발자 경험을 개선하는 등 다양한 이점을 제공한다.
하지만 Expo로 마이그레이션할 수 없거나 원하지 않아도 괜찮다. 공식 프레임워크 없이 React Native를 사용하는 것도 계속 지원된다. React Native Community CLI, 템플릿, Upgrade Helper와 같은 도구들은 기존과 동일하게 작동한다.
react-native init
커맨드는 코어에서 분리되었으며, 이제 다음과 같은 방식으로 접근할 수 있다:
npx @react-native-community/cli@latest init
또한 GitHub의 react-native-community/cli에서도 확인할 수 있다.
React Native 라이브러리 개발자라면, 어떤 API를 사용할지에 대한 권장 사항 목록을 준비했다. RFC에서 더 자세히 알아보자.
추가 자료
이 결정의 배경에 대해 더 알고 싶다면 RFC0759: React Native Frameworks 문서를 읽어보길 권한다. 이 RFC는 React Native 생태계의 다양한 파트너와 참여자들이 수개월 동안 진행한 수많은 논의와 브레인스토밍의 결과물이다.
현재 Expo가 유일하게 권장되는 프레임워크이지만, 이 RFC에는 가이드라인도 포함되어 있다. 이 공간에 더 많은 경쟁과 혁신이 일어나길 바라는 마음에서 작성했다.
또한 App.js 2024에서 발표한 useFrameworks() 강연도 확인해보길 바란다. 이 강연에서는 이 RFC와 필요한 변경 사항을 간략히 소개했다.
React Native Core와 프레임워크의 각각의 책임을 명확히 함으로써 더 건강한 생태계를 조성하고 React Native의 성장과 혁신을 이끌어낼 수 있다고 믿는다.