Don’t worry about failures

react native 들어가기 전에 ( Expo vs React native CLI ) 본문

react native

react native 들어가기 전에 ( Expo vs React native CLI )

허흥 2021. 11. 10. 09:08
728x90

이직에 앞서 react native에 대한 전반적인 Setting 준비하고 있다.

 

Angular와 다르게 역시 react는 커스터마이즈 setting이 필요하다. 서드파티에 대해 여러가지 알아보면서, 

Expo와 React native CLI를 통해 개발 할 수 있는 것을 알았다.

 

우선, 이 둘에 대해 비교분석을 해보자.

 

검색했을 때 흔하게 나오는 장단점은

 

Expo

장점

- 손쉬운 배포

- os에 영향을 받지 않음 ( xcode, android X )

- 빠른 셋팅

- 내장된 모듈이 많다 ( 장점이자 단점 )

단점

 - 원시 언어 모듈 사용불가

 - 빌드 파일 크기가 매우 큼 ( 불필요한 모듈도 다 포함 되어 있기 때문 )

 - 블루투스 이용불가

 - 빌드 시간 길다.

 

React native CLI

 장점 

  - 커스터마이즈, 자유도가 높음

  - 네이티브 언어 공존 가능

 단점

   - 셋팅 시간 오래걸림

   - OS에 따라 설치 툴필요 ( XCode, Android )

   - 모든 라이브러리 손수 설치

 

위와 같은 장단점이 많이 오간다.

 

여러 글을 읽으며, 나의 선택은 react native cli 택하기로 했다.

 

 

이유,

 Expo의 장점인 빠른 개발, 진입장벽이 낮다 등 가장 큰 매력 포인트 이기는 하지만, 추후에 한계를 접하기 싫어 미리 react native cli 통해 택한 것이 가장 큰 이유라 생각된다.

 

네이티브에 대한 경험 부족 등과 같은 선택에 따른 리스크가 있지만, 후에 개발하다 접하는 한계에 따른 리스크가 더 클 것이라 예상이 된다. 모르는 것은 공부하고 알아가면 되지만, 한계를 접하는 것은 내가 어떻게 할 수 없는 영역이기 때문이다. 

 

또한, expo도 프레임워크라 볼 수 있다. 현재 웹 개발을 Angular로 하면서, angular에 종속 되어 개발을 하는 것이 아닌 커스텀하게 개발을 하고자 React를 공부를 했고, 이 부분에 있어 나의 성향은 expo 보단 react native cli를 통해 개발을 시작하는 것이 나중에 후회를 하지 않을 것이라 생각이 든다. 

 

현재는 작은 프로젝트일지 몰라도 꼭 성공시켜 규모 있는 프로젝트를 만들 것을 대비하여 react native cli를 진행할 것이다. 

 

추가로,

expo의 동작 구조에 대해 살펴보면

expo는 

1. expo 모바일 클라이언트에 react-native가 번들링한 javascript를 내려주기 위한 서버

2. expo-cli와 expo 모바일 클라이언트 둘 사이의 통신을 위한 서버

이 두개의 서버를 띄워 동작한다.

 

native 환경에서 구동되는 것이 아닌 expo 모바일 클라이언트에서 실행.

=> 이 때문에 native 모듈을 사용할 수 없게 된 것이다.

 

 

728x90

'react native' 카테고리의 다른 글

React native 구동 방식 ( 신 )  (0) 2021.12.26
React native 구동 방식 ( 구 )  (0) 2021.12.25
dependency 버전 문제  (0) 2021.12.18
react-native 프로젝트 구조  (0) 2021.12.18
react native intro  (0) 2021.11.05