1인 개발 프로젝트에 'Expo'를 선택한 이유 (장단점 총 정리)

김승철·2025년 9월 12일

1인개발

목록 보기
3/4
post-thumbnail

안녕하세요,
오늘은 React Native Expo를 선택한 이유와 장단점에 대해 소개해보려고 합니다.

지금 이 순간에도 우리는 수많은 기술적 선택 앞에서 고민하고 있습니다. 저 역시 '어떤 기술 스택을 선택해야 이 프로젝트를 무사히 완성할 수 있을까?'라는 질문을 끊임없이 던졌고, 그 해답으로 React Native Expo와 함께하기로 결정했습니다.

이 글은 프로젝트를 만들어가는 과정에서 쓰는 기록입니다. 제가 왜 Expo를 선택했는지, 그리고 개발을 진행하며 느끼는 장점과 앞으로 마주할 수 있는 위험 요소를 어떻게 생각하고 있는지 공유해 보겠습니다.


Expo 간단 정리

Expo는 React Native 개발을 더 쉽고 빠르게 만들어주는 오픈소스 플랫폼이자 프레임워크입니다. 복잡한 네이티브 개발 환경 설정의 고통을 덜어주고, 필수적인 기능들을 미리 탑재하여 개발자가 오직 '만드는 것'에만 집중할 수 있도록 도와주는 풀옵션 패키지라고 할 수 있죠.

  • Expo SDK: 카메라, GPS 등 네이티브 기능을 미리 만들어둔 자바스크립트 라이브러리 묶음입니다.
  • Expo Go 앱: 개발 중인 앱을 스마트폰에서 실시간으로 테스트할 수 있게 해주는 마법 같은 애플리케이션입니다.
  • EAS (Expo Application Services): 클라우드 기반으로 앱을 빌드하고, 스토어에 배포하며, 업데이트를 관리해주는 서비스입니다.

제가 Expo를 선택하고 만족하는 이유

저는 지금 Expo의 장점을 온몸으로 체감하며 개발하고 있습니다.

1. 시간, 1인 개발자의 가장 소중한 자원

혼자 모든 것을 해야 할 때, 가장 부족한 것은 시간입니다. Expo는 Xcode나 Android Studio 같은 복잡한 네이티브 개발 환경을 설정하는 데 드는 시간을 '0'으로 만들어 주었습니다. npx create-expo-app 명령어 하나로 프로젝트를 시작하고, Expo Go 앱으로 QR 코드를 찍어 제 아이폰에서 앱이 실행되는 순간, 저는 이 선택이 옳았다고 확신했습니다.

이 압도적인 개발 속도 덕분에, 저는 지금도 불필요한 설정에 시간을 낭비하지 않고 서비스의 핵심 기능을 구현하는 데만 집중하고 있습니다.

2. '네이티브 기능'이라는 거대한 산을 넘게 해준 동반자

제가 만들고 있는 앱에도 카메라 접근, 위치 정보 확인 같은 기능이 필요합니다. 1인 개발자로서 iOS와 Android의 네이티브 API를 모두 학습하는 건 상상만 해도 끔찍하죠. Expo는 SDK를 통해 이런 기능들을 간단한 자바스크립트 코드로 해결할 수 있게 해줍니다. 덕분에 저는 지금도 네이티브 코드는 한 줄도 건드리지 않고, 익숙한 방식으로 개발을 이어나가고 있습니다.

3. '배포'와 '운영'에 대한 막연한 불안감 해소

아직 개발 중이지만 '나중에 배포는 어떻게 하지?'라는 걱정은 항상 있었습니다. 특히 Mac이 없는 상황에서 iOS 앱 빌드는 큰 장벽이었죠. 하지만 Expo의 EAS Build는 클라우드에서 빌드를 대신해주기 때문에 이 문제를 해결할 수 있다는 확신을 주었습니다.

또한, 출시 후를 상상해 보면 OTA(Over-the-Air) 업데이트 기능이 정말 기대됩니다. 간단한 버그를 수정하기 위해 매번 스토어 심사를 기다릴 필요가 없다는 것은, 혼자서 서비스를 운영해야 할 저에게 큰 심리적 안정감을 줍니다.


그럼에도, 제가 항상 경계하는 위험 요소

개발이 순조로운 지금도, 저는 Expo가 가진 잠재적인 위험 요소를 항상 염두에 두고 있습니다.

1. 언젠가 마주칠지 모를 '네이티브 모듈'의 벽

이것이 제가 가장 경계하는 부분입니다. 만약 프로젝트 중간에 Expo SDK가 지원하지 않는 특정 네이티브 모듈(예: 국내 PG사 결제 모듈)이 꼭 필요해진다면 어떻게 될까요? Expo Go 환경에서는 이를 추가할 수 없기 때문에, 프로젝트의 방향을 틀거나 'eject'(Bare Workflow로 전환)라는 복잡한 과정을 거쳐야만 합니다.

그래서 저는 기획 단계에서 필요한 외부 서비스나 SDK가 Expo 환경을 지원하는지 최대한 검토했고, 앞으로도 새로운 기능을 추가할 때마다 이 부분을 최우선으로 확인할 계획입니다.

2. 피할 수 없는 '앱 용량'이라는 숙제

Expo로 만든 앱은 순수 React Native 앱보다 초기 용량이 크다는 사실을 인지하고 있습니다. 참조 -문서
Expo로 만든 앱은 내장된 기능이 많아 기본적으로 용량이 큽니다.
간단한 "Hello world" 앱조차 15~20MB에 달할 정도로, 순수 React Native로 만든 앱보다 훨씬 무겁습니다.
Expo 측에서 최적화를 통해 개선할 예정이라고는 하지만, 현재로서는 이것이 명백한 단점입니다.
앱 크기를 줄이기 위한 몇 가지 방법이 있긴 하지만, 근본적인 해결책은 되지 못하고 있습니다.
현재로서는 앱의 핵심 가치로 이를 극복해야 한다고 생각하고 있습니다.

3. 찾을수없는 버그

지금은 괜찮지만, 언젠가 Expo 자체의 버그나 특정 환경에서만 발생하는 문제를 마주할 수 있다는 사실을 알고 있습니다. 팀원이 있다면 함께 해결하겠지만, 혼자서는 원인조차 찾기 어려울 수 있죠. 이런 예측 불가능한 위험은 1인 개발 프로젝트에 치명적일 수 있기에, 저는 커뮤니티와 공식 문서를 꾸준히 주시하며 대비하고 있습니다.


Expo를 선택한 이유

Expo는 '높은 자유도'를 일부 양보하는 대신, '압도적인 개발 속도와 편의성'을 얻는 전략적인 선택입니다.

저처럼 앱을 만들어가고 있는 1인 개발자에게 Expo는 최고의 페이스메이커가 되어주고 있습니다.

만약 여러분도 저처럼 빠르게 아이디어를 구현하고 검증하는 것이 중요하고, 네이티브 개발 경험이 부족하며, 프로젝트에 필요한 기능 대부분이 Expo 생태계 안에서 해결 가능하다면, Expo는 분명 훌륭한 선택지가 될 것입니다.

물론 저도 이 프로젝트의 끝에서 어떤 문제와 마주하게 될지는 모릅니다. 하지만 지금까지의 경험으로 볼 때, Expo는 경험과 지식이 부족한 1인 개발자에게는 좋은 선택지라고 생각합니다.

감사합니다

profile
프론트엔드 개발자

3개의 댓글

comment-user-thumbnail
2025년 9월 13일

eject 안해도 네이티브 모듈 붙이거나 개발할 수 있습니다.

1개의 답글
comment-user-thumbnail
2025년 9월 15일

사랑합니다 expo

답글 달기