2가지 React Native 개발 환경의 차이점
React Native의 개발환경 프레임워크에는 React Native Comand Line Interface 와 React Native Expo Comand Line Interface 2가지가 있는데, 2가지 개발 프레임워크의 차이점은 무엇이 있는지 그 차이점에 대해 정리해보고자 한다.
React Native CLI
● React Native의 공식 개발 프레임워크로 개발자가 네이티브 코드에 직접적으로 접근할 수 있음, 하지만 따로 초기 환경설정을 해줘야함
React Native CLI의 특징
● 앱 개발을 위해선 초기 개발환경 세팅이 필수적임
● Native code에 직접적으로 접근할 수 있음
● 원하는 언어로 추가작성이 가능함 ( Java, Kotlen, swift, obj-C 등 )
● 필요한 기능이 있을 때 모듈을 직접 제작할 수 있음
● 모바일 OS Layer와 직접적으로 소통이 가능함
React Native Expo CLI
● React Native 개발을 보다 쉽게 할 수 있도록 설계된 프레임워크로 복잡한 환경설정없이 바로 앱 개발을 할 수 있게 지원해줌
React Native Expo CLI의 특징
● 별도의 개발환경 세팅이 필요없고 개발하기 쉬움
● Native code에 직접적으로 접근할 수 없음
● 원하는 언어로 추가작성이 불가능함
● 별도의 모듈을 추가할 수 없고 expo에서 제공해주는 모듈만 사용가능함
● 모바일 OS Layer와 직접적으로 소통이 불가능함
● Expo Client에서는 개발한 앱이 Expo Go 앱을 통해 실시간으로 작동되는 화면을 볼 수 있지만 simulater나 단말기에서는 잘 작동하지않는 단점이 있음
React Native Expo CLI vs React Native CLI
1. 별도의 개발환경 세팅 : expo는 별도의 개발환경 세팅이 필요하지 않지만 React Native CLI는 별도의 환경세팅이 필요함
2. Native code에 대한 접근성 : expo는 Native code에 대해 접근할 수 없지만 React Native CLI는 Native code에 대해 접근할 수 있음
3. Javascript 이외의 언어 사용 가능성 : expo는 Javascript기반의 React Native언어만을 사용할 수 있지만, React Native CLI는 Java나 Swift, odj-C와 같은 언어를 추가할 수 있음
4. 별도의 추가 모듈 사용 가능성 : expo는 React Native expo에서 제공하는 기본 모듈만을 사용할 수 있지만, React Native CLI는 해당 모듈 이외의 모듈을 사용하고 싶으면 직접 지정하여 사용할 수 있음
5. 모바일 OS Layer에 대한 직접적인 접근 : expo는 모바일 OS Layer에 대해 직접적으로 접근 할 수 없지만 React Native CLI는 해당 Layer에 직접적으로 접근이 가능함
6. 디바이스 : expo는 Expo Go 앱을 통해서만 앱이 제대로 실행되지만 React Native CLI는 다른 단말기에서도 제대로 작동함