이번 DND 7기 활동을 시작하고 1주차를 지나고 있다. 원래 React도 제대로 학습 한 적이 없어 학습중이였는데, 프로젝트 기획 단계에서 웹이 아닌 앱으로 만들어보자는 이야기가 나왔다. 나 같은 경우 CrossFlatform Application 개발은 Flutter가 편하지만, 아무래도 팀 빌딩 단계에서 웹 프론트엔드로 맞춰졌기 때문에 테크 스택 자체가 JS나 TS에 초점이 맞춰져 있을 수 밖에 없었다.
따라서 이번에 RN을 배워보고 RN을 사이드 프로젝트에 실제로 사용 해보고자 한다. Flutter와 RN이 비슷한 부분이 생각보다 많기 때문에 React와 Flutter를 섞은 느낌이라고 생각하고 개발하면 편할 거 같았다.
물론 실제로 프로젝트 셋팅을 해본 결과 Flutter보다 약 10배는 어려운 프로젝트 셋팅 난이도를 가지고 있다. CLI부터 엄청난 난관에 봉착하게 되는데, 나만 이게 문제가 있는 것이 아니라 같은 프론트엔드 팀원도 어려워 했던 것을 미뤄보아 RN의 진입 장벽이 Flutter보단 높다고 생각을 한다.
Expo CLI
보통 인터넷에 검색을 하면 Expo CLI부터 나오게 된다. Expo CLI는 RN 개발을 하는 개발자한테 편리함을 주기위한 툴이다. RN의 공식적인 툴은 아니다. 하지만 많이 사용하는데는 이유가 있다. 바로 다양한 장점들이 있기 때문이다.
장점
- 개발 환경을 구축하기가 쉽고 용이하다.
- 파일들을 자동으로 관리 해준다.
- 실제 개발 난이도가 RN CLI보다 쉽고 편리하다.
단점
- OS Layer와 직접 상호 작용이 불가능하다. (Java, Kotlin, Object-C, Swift를 추가적으로 작성이 불가능하다. 즉 native 파일 제어가 불가능하다.)
- Expo에서 제공해주는 기능과 모듈만 사용이 가능하다.
- Expo Client에서는 잘 작동하지만 실제 Simulator 및 실제 단말기에서 잘 동작하지 않을 수 있다.
- 개발 관점에서 자유도가 낮다.
Expo는 간단하고 편리하게 개발 셋팅을 할 수 있고 개발또한 편하게 할 수 있는 장점이 있지만 섬세한 작업은 불가능 하다는 것을 알 수 있습니다.
React Native CLI
React Native CLI는 메타의 공식적인 툴이다. 즉 React Native만을 이용하여 개발 할 수 있는 툴이다. 또한 해외 레퍼런스도 Expo로 개발 된 내용보단 많다는 장점이 있다. 즉 많은 라이브러리와 레퍼런스를 얻을 수 있고, Expo CLI에선 불가능한 Native 파일에도 접근 하여서 다양하게 제어를 할 수 있다는 것이 가장 큰 장점이다.
장점
- Expo로는 접근하지 못하는 Native 기능에 접근이 가능하다. (Native module 사용 자유도도 높다.)
- 원하는 언어로 추가 작성이 가능하다.
- 필요한 기능이 있을 경우 모듈을 직접 제작 가능하다.
- OS Layer와 직접적인 상호 작용이 가능하다.
단점
- 초기 개발환경 구축 및 실제 앱 개발시 다소 시간이 소요된다.
레퍼런스
'프론트엔드 개발 > React Native' 카테고리의 다른 글
[React Native] React Navigation (0) | 2022.07.08 |
---|---|
[React Native] Components(1) (0) | 2022.07.07 |