React Native의 장점은 하나의 프로젝트로 Android와 iOS에 모두 배포할 수 있다는 점입니다.
그래서 앱 개발을 새로 입문하는 분들이 많이 선택하는 프레임워크인데 아마 모든 React Native 개발자가 고민하는 부분이 바로 React-Native CLI와 Expo Go 중 에서 어떤 걸 선택해야 하는가 일 것 같습니다.
✅ 'React Native CLI' vs 'Expo Go'
React Native를 개발하는 방법은 크게 두 가지입니다.
1. React-Native CLI
2. Expo Go
위 두 가지는 개발 환경 구축부터 갈라져서 프로젝트 생성, 개발 과정, 배포까지 완전히 다른 길을 걷게 됩니다.
그렇기 때문에 어떤 방법으로 개발할지 시작부터 선택이 강제됩니다.
어렵다 vs 쉽다
대부분 React Native 강좌를 보면 Expo를 사용합니다. 그리고 Expo가 쉽다고 얘기합니다.
전 유료 강의를 들었었는데 역시 Expo 강의였습니다.
처음이니까 별생각 없이 강의를 들으면서 따라 했는데 찝찝합니다.
Expo의 단점
- Native 영역의 수정 불가능 (개발의 한계)
- Expo에서 지원하는 라이브러리만 사용 가능
- Expo서버로 빌드 요청 시 대기 시간 발생
다른 것보다 개발의 한계가 있다는 점은 받아들이기가 어려웠습니다.
그럼 Expo의 장점으로 대부분 쉽다고 하는데 어떤 점이 쉽고 편한 걸까요?
Expo만 사용하면 비교할 수가 없으니 React Native CLI로 환경 구축을 하고 강의 내용대로 개발을 해봤습니다.
편리함 vs 자유로움
저는 개발의 편리와 자유 중에 선택하라면 개발의 자유를 선택하겠습니다.
Expo가 아무리 편해도 결국은 React Native CLI로 갈아탔을 거예요.
그래서 빠르게 개발 환경 구축부터 실행 테스트까지 했습니다.
그리고 결론은 별로 어렵지 않았습니다.
React Native 가 빠르게 버전 업되고 있어서 예전 자료를 참고해서 설치하면 분명히 잘 안 되는 부분이 있습니다.
약간의 시행착오를 거쳐서 정리를 하고 나니 별거 아니었습니다.
단지 이 것 때문에 Expo를 쓰라는 건가 싶을 정도였습니다. Expo로 개발하는 것과 다른 점이 거의 없습니다.
기본적으로 React라는 프레임워크 위에서 개발하는 것이기 때문인 것 같습니다.
물론 맛만 본 것이기 때문에 이게 전부는 아니겠지만 React Native CLI로 선택했습니다.
Expo에서 탈출
Expo가 나쁘다고 쭉 써놨는데 꼭 나쁜 점만 있진 않을 것 같습니다.
개발 환경 구축이 편한 것은 아주 큰 장점이죠.
그런데 React Native CLI가 그리 어렵지도 않습니다.
개발이 편하면 당연히 따라오는 것이 있습니다.
- 덩치가 커짐
- 느림
- 제약이 생김
C++에서 C#으로 넘어갈 때 위 세 가지가 따라왔습니다.
다만 개발이 너무 많이 편해지지만 성능이 크게 떨어지는 것도 아니고 포인터를 사용할 수 없다는 제약이 생겼지만 메모리 관리가 많이 편해졌습니다. 그렇다고 딱히 개발의 한계가 생긴 것도 아니었고요.
하지만 Expo는 개발의 한계가 발생하기 때문에 저는 탈출을 선택했습니다.
마무리
이제 막 시작하는 초보라서 틀린 내용이 있을 것 같습니다.
댓글로 알려주시면 감사하겠습니다.
React Native CLI 환경 구축에 대한 포스팅은 따로 올릴 예정입니다.