[React Native Expo] Managed Workflow와 Bare Workflow의 차이

JS/React Native Expo · 2024. 1. 26. 16:22
728x90

React native에는 Expo버전과 Cli버전이 있다.

Expo버전은 개발자가 최대한 네이티브코드를 건들지 않고 작업할 수 있게 메타에서 만든 React native의 프레임워크라고 보면된다.

그에 반면해 Cli는 직접 오브젝트C와 JAVA를 수정해서 네이티브코드를 건드려야하는 오리지널 버전에 가깝다.

그럼 여기서 Expo도 Managed Workflow와 Bare Workflow로 나뉘는데

 

Managed Workflow

prebuild를 하지않은, expo에서 자체적으로 패키지를 지원하는 버전이라고 보면된다. 즉 android와 ios파일들이 없고 개발자가 네이티브 코드를 건드릴필요도, 볼 일도 없다. 

 

Bare Workflow

prebuild를 해서 ios와 android파일들이 생겨서 개발자가 그 코드들을 컨트롤 할 수 있는 상태를 말한다. Bare workflow로 전환되면 expo에서도 써드파티라이브러리들을 사용 가능하게 되는데, 원래 expo에 있던 단점들을 보완할 수 있게된다.

 

원래의 React native Expo는 써드파티라이브러리들이 적용 불가능했었다. 원래 expo에서 지원하는 sdk 기능들만 사용이 가능했는데

그래서 한국에서 가장 핵심적이고 많이 쓰이는 기능인 카카오로그인, 네이버로그인 등등이 불가능했다. 그래서 국내에서는  expo로 작업하는 일이 드물었다고한다. 대부분의 react native 앱들이 cli로 되어있다고..

근데 현재 그 단점이 보완되서 업데이트된 expo를 사용하는 개발자들은 다 하나같이 말한다

why not expo? 왜 expo버전 안하냐고..

그냥 prebuild하면 다 적용되는거 왜 안하냐고!!!

예전에는 expo로 작업하다가 써드파티라이브러리를 써야하는 상황이 오면 eject를 해야했고 그 eject 과정이 매우 복잡하고 고통스러웠다. 그런데 지금은 그냥 prebuild라는 중간빌드 기능덕분에 네이티브 코드들을 컨트롤 할 수 있게된것이다.

 

그래서 EXPO로 작업하게되었는데 그래도 여전히 한가지 불편한점은 남아있다.

prebuild가 아무래도 중간빌드이기때문에 prebuild를 하고 난 후에는 Bare Workflow로 넘어가서

Managed Workflow 기능들을 쓸 수 없다는 것이었다.

그래서 발견한 꼼수로는 최대한 Managed Workflow로 작업을 해서 prebuild 한 다음 써드파티라이브러리 기능들을 나중에 구현하는 방식이었다.

 

하지만 이것도 처음 구축할때 설계에서 이렇게 하면 된다 치지만 나중에 유지보수할때는 거의 Bare Workflow기능들만 쓰게 될텐데

expo의 편의성 장점을 못가져가게되는것같기도하다.

 

 

 

 

 

 

728x90
Copyright © Nana
levup