React Native vs Flutter 모바일 앱 프레임워크 선택 가이드 (리액트 설치 포함)
인력 1명짜리 한국 1인 개발팀이라면 이미 React를 쓰고 있고 코드를 웹·앱에 나눠 쓰고 싶을 때는 리액트 네이티브(React Native), 처음부터 모바일 화면 품질과 빌드 안정성을 우선하고 싶을 때는 플러터(Flutter)가 맞습니다. 둘 다 무료 오픈소스라 비용 차이는 없고, 진짜 갈림길은 학습 비용·국내 채용 시장·혼자 유지보수 가능한 범위에서 갈립니다. 이 글은 제가 Next.js + 슈퍼베이스(Supabase) + 버셀(Vercel) 조합으로 12개 사이트를 직접 돌리는 1인…
한 줄 요약: 인력 1명짜리 한국 1인 개발팀이라면 이미 React를 쓰고 있고 코드를 웹·앱에 나눠 쓰고 싶을 때는 리액트 네이티브(React Native), 처음부터 모바일 화면 품질과 빌드 안정성을 우선하고 싶을 때는 플러터(Flutter)가 맞습니다. 둘 다 무료 오픈소스라 비용 차이는 없고, 진짜 갈림길은 학습 비용·국내 채용 시장·혼자 유지보수 가능한 범위에서 갈립니다. 이 글은 제가 Next.js + 슈퍼베이스(Supabase) + 버셀(Vercel) 조합으로 12개 사이트를 직접 돌리는 1인 개발자 입장에서, 모바일 프레임워크를 고를 때 무엇을 기준으로 보는지 정리한 것입니다. 리액트 설치 과정도 함께 짚습니다.
이 글이 필요한 사람
웹은 만들어 봤는데 첫 모바일 앱을 어느 프레임워크로 시작할지 못 정한 1인 개발자
React는 익숙한데 리액트 네이티브로 그대로 넘어갈 수 있는지 궁금한 분
플러터의 다트(Dart) 언어를 새로 배울 가치가 있는지 손익을 따져 보려는 분
국내 채용 시장과 외주 현실까지 고려해 기술을 고르고 싶은 분
※ 2026년 6월 기준으로 정리했습니다. 두 프레임워크의 버전·도구·권장 설치 절차는 자주 바뀌므로, 화면이 다르면 각 공식 문서에서 최신 절차를 확인하시길 권장합니다.
두 프레임워크는 결국 무엇이 다른가
리액트 네이티브와 플러터는 둘 다 코드를 한 번 짜면 안드로이드와 iOS 양쪽 앱이 나오는 크로스플랫폼 프레임워크입니다. 목적은 같은데 화면을 그리는 방식이 근본적으로 다릅니다. 리액트 네이티브는 우리가 짠 컴포넌트를 운영체제가 가진 진짜 네이티브 UI 요소로 바꿔서 보여 줍니다. 반대로 플러터는 운영체제 UI를 빌리지 않고 자체 렌더링 엔진(Skia 계열)으로 화면 전체를 직접 그립니다. 그래서 플러터는 어느 기기에서나 화면이 똑같이 보이고, 리액트 네이티브는 기기마다 시스템 컴포넌트를 따르기 때문에 그 플랫폼다운 느낌이 자연스럽게 납니다.
이 차이가 곧 언어 선택으로 이어집니다. 리액트 네이티브는 자바스크립트(JavaScript)와 타입스크립트(TypeScript)를 쓰고, 플러터는 구글(Google)이 만든 다트라는 언어를 씁니다. 웹 개발자에게는 이 한 줄이 사실상 가장 큰 갈림길입니다. 아래 표로 핵심을 먼저 비교했습니다.
항목
리액트 네이티브
플러터
언어
JavaScript·TypeScript
Dart
만든 곳
메타(Meta)
구글
화면 렌더링
기기 네이티브 UI 사용
자체 엔진으로 직접 그림
웹 개발자 진입
React 알면 매우 빠름
언어부터 새로 학습
웹 코드 공유
React 웹과 로직 공유 쉬움
웹 따로(Flutter Web)
제가 이미 React 기반 웹을 여러 개 운영하는 입장이라, 첫인상에서 가장 크게 와닿은 건 코드 자산의 재사용 가능성이었습니다. 모바일을 위해 언어 하나를 통째로 새로 익혀야 하느냐, 아니면 쓰던 자바스크립트 지식을 그대로 들고 넘어가느냐는 1인 개발에서 생각보다 큰 비용 차이입니다.
React Native vs Flutter 모바일 앱 프레임워크 선택 가이드 (리액트 설치 포함) 관련 참고 이미지
리액트 네이티브로 가기 전 — React 설치부터 짚기
리액트 네이티브를 고르려는 분 중에는 React 웹 경험이 거의 없는 분도 있습니다. 리액트 네이티브는 React의 컴포넌트·상태·훅 개념을 그대로 쓰기 때문에, 웹 React를 먼저 한 번이라도 만들어 보면 모바일 진입이 훨씬 매끄럽습니다. 그래서 React 프로젝트를 띄우는 가장 단순한 방법부터 보겠습니다. Node.js(LTS 버전)가 설치돼 있어야 합니다.
React 단독 프로젝트 생성 (Vite 기반)
npm create vite@latest my-app -- --template react
cd my-app
npm install
npm run dev
위 명령은 Vite로 React 웹 프로젝트를 만들고 개발 서버를 띄웁니다. 여기서 컴포넌트와 훅에 익숙해지면 리액트 네이티브로 넘어갈 준비의 절반은 끝난 셈입니다. 모바일 앱은 보통 별도 설치 과정이 필요한데, 요즘 가장 권장되는 시작점은 엑스포(Expo)입니다. Expo는 네이티브 빌드 환경을 직접 손대지 않아도 안드로이드·iOS 앱을 바로 돌려 볼 수 있게 해 주는 도구입니다.
React Native vs Flutter 모바일 앱 프레임워크 선택 가이드 (리액트 설치 포함) 관련 참고 이미지
리액트 네이티브 — Expo 프로젝트 생성·실행
npx create-expo-app@latest my-mobile-app
cd my-mobile-app
npx expo start
마지막 명령을 실행하면 터미널에 QR 코드가 뜨고, 스마트폰에 설치한 Expo Go 앱으로 그 코드를 찍으면 실제 기기에서 곧바로 앱이 실행됩니다. 안드로이드 스튜디오나 엑스코드(Xcode)를 처음부터 설정하지 않아도 화면을 볼 수 있다는 점이 입문 장벽을 크게 낮춰 줍니다. 저는 웹에서 쓰던 컴포넌트 사고방식을 그대로 들고 와 첫 화면을 띄우기까지 막힘이 거의 없었는데, 이게 React 경험이 모바일로 옮겨 가는 가장 직접적인 이득이었습니다.
플러터를 고르면 무엇을 새로 배워야 하나
플러터를 시작하려면 먼저 플러터 SDK를 내려받고, 안드로이드 스튜디오(또는 VS Code 플러터 확장)를 깔고, 다트 언어 문법을 익혀야 합니다. 다트는 자바스크립트와 비슷한 구석이 있어 아주 낯설지는 않지만, 분명히 새 언어입니다. 설치 자체보다 위젯(Widget)으로 화면을 조립하는 사고방식과 다트 문법에 적응하는 시간이 진짜 학습 비용입니다.
플러터 — 설치 점검과 프로젝트 생성·실행
flutter doctor
flutter create my_flutter_app
cd my_flutter_app
flutter run
설치 후 가장 먼저 실행하는 명령이 flutter doctor입니다. 이 명령은 안드로이드 SDK, 라이선스 동의, 연결된 기기 등 환경이 제대로 갖춰졌는지 항목별로 체크해 줍니다. 빨간 X가 뜨면 그 항목을 채우라는 안내가 나오므로, 설치가 꼬였을 때 어디가 문제인지 잡기 좋습니다. 한국에서 처음 셋업할 때 흔히 막히는 지점은 안드로이드 라이선스 동의 단계인데, 안내에 나오는 flutter doctor --android-licenses 명령으로 동의를 마치면 대부분 풀립니다.
학습 비용을 솔직하게 보기 플러터의 화면 완성도와 빌드 안정성은 분명히 매력적입니다. 다만 1인 개발자에게는 다트라는 언어를 새로 들이는 비용이 생각보다 무겁습니다. 웹에서 쓰던 자바스크립트 자산과 라이브러리 생태계를 모바일에서 거의 못 들고 오기 때문입니다. 반대로, 모바일을 진지하게 키울 계획이고 웹 코드 공유에 미련이 없다면 그 학습 비용은 충분히 회수됩니다.
저는 React 자산이 이미 많은 쪽이라 플러터를 메인으로 고르지는 않았지만, 화면을 픽셀 단위로 통제하고 모든 기기에서 동일하게 보이길 원하는 프로젝트라면 플러터가 더 깔끔한 선택이라는 점은 인정합니다. 결국 가진 자산이 무엇이냐가 답을 바꿉니다.
React Native vs Flutter 모바일 앱 프레임워크 선택 가이드 (리액트 설치 포함) 관련 참고 이미지
국내 채용 시장과 외주 현실은 어느 쪽 손을 들어 주나
기술 선택은 혼자 쓰고 끝이 아니라, 나중에 사람을 구하거나 코드를 넘길 때까지 봐야 합니다. 한국 채용 공고를 보면 모바일 직군은 여전히 안드로이드(코틀린)·iOS(스위프트) 네이티브가 가장 많고, 크로스플랫폼 중에서는 리액트 네이티브와 플러터가 비슷한 비중으로 올라옵니다. 다만 결이 조금 다릅니다.
관점
리액트 네이티브
플러터
웹·앱 겸업 채용
React 인력과 풀 겹침
모바일 전담 쪽이 많음
스타트업 선호
웹 스택과 통합 유리
앱 우선 제품에서 강세
외주·SI
웹 개발자 동원 쉬움
앱 단독 외주에 적합
학습 자료(한국어)
React 자료가 받쳐 줌
전용 강의·커뮤니티 활발
여기서 1인 개발자에게 중요한 건 단순한 공고 수가 아니라 인력 풀이 얼마나 겹치느냐입니다. 리액트 네이티브를 고르면 React 웹 개발자가 큰 추가 학습 없이 모바일 코드에 손댈 수 있어, 나중에 협업자를 붙이거나 일부를 외주로 돌릴 때 후보가 넓습니다. 플러터는 모바일에 집중한 개발자를 따로 구해야 하지만, 그만큼 앱 품질에 전념한 인력을 만나기 쉽다는 장점이 있습니다.
한국 시장에서 네이버·카카오·토스 같은 곳이 쓰는 핵심 앱은 대체로 네이티브를 유지하는 편이고, 크로스플랫폼은 빠르게 만들고 검증해야 하는 신규 서비스·사내 도구·중소 규모 제품에서 자주 채택됩니다. 1인 개발자가 빠르게 출시하고 혼자 굴리는 상황이라면 바로 이 영역에 들어가므로, 두 프레임워크 모두 합리적인 선택지입니다.
혼자 결정할 때 던지는 5가지 질문
비교표만으로는 결정이 안 서는 분을 위해, 제가 실제로 스스로에게 던지는 질문을 순서대로 정리했습니다. 위에서부터 답하다 보면 자연스럽게 한쪽으로 기울게 됩니다.
이미 React를 쓰고 있는가? — 그렇다면 리액트 네이티브가 학습 비용을 가장 크게 아껴 줍니다. 쓰던 언어·도구·사고방식을 그대로 들고 갑니다.
웹과 앱 코드를 공유하고 싶은가? — 로직·상태 관리·타입을 공유하려면 리액트 네이티브가 유리합니다. 앱만 따로 갈 거면 이 항목은 의미가 없습니다.
모든 기기에서 화면이 픽셀 단위로 똑같길 원하는가? — 그렇다면 자체 렌더링을 쓰는 플러터가 더 일관됩니다. 디자인 통제가 까다로운 제품에 강합니다.
새 언어(다트)를 배울 시간이 있는가? — 시간이 빠듯한 1인 개발이라면 새 언어 학습이 일정에 직접 부담이 됩니다. 여유가 있고 모바일을 길게 키울 거면 회수됩니다.
나중에 사람을 붙이거나 외주를 줄 가능성이 있는가? — 웹 인력과 풀을 공유하려면 리액트 네이티브, 모바일 전담을 구할 거면 플러터가 자연스럽습니다.
제 결론(맥락 한정) 저처럼 Next.js·React 웹 자산이 이미 많고 인력이 1명이라면 리액트 네이티브가 기회비용이 가장 낮습니다. 다만 화면 품질을 최우선으로 두는 단독 앱 제품이거나 다트 학습에 거부감이 없다면 플러터를 말리지 않습니다. 둘 다 무료라서 실패해도 금전 손실은 없으니, 망설일 바엔 작은 프로토타입을 양쪽으로 하루씩 만들어 보는 게 가장 빠른 답입니다.
React Native vs Flutter 모바일 앱 프레임워크 선택 가이드 (리액트 설치 포함) 관련 참고 이미지
시작할 때 자주 막히는 함정 3가지
어느 쪽을 고르든 입문 단계에서 반복적으로 부딪히는 지점이 있습니다. 미리 알고 가면 시간을 크게 아낍니다.
케이스 — iOS 빌드는 결국 맥이 필요하다. 원인: 애플 앱은 엑스코드로만 정식 빌드·서명이 됩니다. 해결: 윈도우만 있으면 안드로이드 먼저 개발하고, iOS 빌드는 Expo의 클라우드 빌드(EAS)나 맥 기기를 빌릴 때까지 미뤄 두는 식으로 분리합니다.
케이스 — Node 버전이 안 맞아 설치가 깨진다. 원인: 리액트 네이티브·Expo는 권장 Node LTS 버전을 벗어나면 의존성 설치에서 오류가 잦습니다. 해결: nvm 같은 버전 관리 도구로 LTS 버전을 맞추면 대부분 사라집니다.
케이스 — 안드로이드 라이선스 미동의로 빌드가 멈춘다. 원인: SDK는 깔렸는데 라이선스 동의를 안 한 상태입니다. 해결: 플러터는 flutter doctor --android-licenses, 리액트 네이티브는 안드로이드 스튜디오 SDK Manager에서 동의 항목을 처리하면 풀립니다.
이 세 가지는 프레임워크 자체의 문제가 아니라 모바일 빌드 환경 공통의 통과의례에 가깝습니다. 한 번 겪어 두면 다음 프로젝트부터는 같은 자리에서 멈추지 않습니다.
단순 비교로는 자체 엔진으로 직접 화면을 그리는 플러터가 복잡한 애니메이션이나 그래픽이 많은 화면에서 더 매끄러운 편입니다. 다만 일반적인 목록·폼 위주 앱은 둘 다 체감 차이가 거의 없고, 실제 성능은 프레임워크보다 코드 구조와 불필요한 재렌더링 관리에서 더 크게 갈립니다.
웹 React만 해봤는데 리액트 네이티브로 바로 넘어갈 수 있나요?
컴포넌트·상태·훅 개념이 그대로라 핵심 사고방식은 바로 옮겨 갑니다. 다만 div·CSS 대신 View·StyleSheet를 쓰는 등 화면 구성 방식이 웹과 달라서, 레이아웃과 네이티브 모듈 부분은 새로 익혀야 합니다. 그래도 언어를 새로 배우는 플러터보다는 진입이 훨씬 가볍습니다.
두 프레임워크 모두 무료인가요? 숨은 비용은 없나요?
두 프레임워크 자체는 오픈소스라 무료입니다. 숨은 비용은 프레임워크가 아니라 배포 쪽에서 나옵니다. 애플 앱 등록은 개발자 계정 연회비가 들고, 안드로이드는 1회 등록비가 듭니다. 또 iOS 빌드를 위해 맥 환경이나 클라우드 빌드 비용이 생길 수 있어, 정확한 금액은 2026년 6월 기준으로 각 스토어 공식 페이지에서 최신 확인을 권장합니다.
한국 채용 시장에서는 어느 쪽이 더 유리한가요?
웹과 앱을 겸하는 포지션이나 React 인력과 풀을 공유하려는 회사에서는 리액트 네이티브 경험이 활용도가 높습니다. 반면 모바일 전담으로 빠르게 출시하는 제품에서는 플러터 채용도 꾸준합니다. 어느 한쪽이 절대 우위라기보다, 지원하려는 회사의 스택과 제품 성격에 맞추는 편이 현실적입니다.
윈도우만 있는데 모바일 앱 개발이 가능한가요?
안드로이드 앱은 윈도우에서 처음부터 끝까지 만들 수 있습니다. 문제는 iOS인데, 애플 앱의 정식 빌드와 서명은 맥과 엑스코드가 필요합니다. 그래서 윈도우 사용자는 보통 안드로이드를 먼저 완성하고, iOS 빌드는 Expo의 클라우드 빌드를 쓰거나 맥 환경을 잠깐 빌리는 방식으로 우회합니다.
결국 1인 개발자는 처음에 무엇을 고르는 게 좋을까요?
이미 React를 쓰고 있고 웹 코드를 일부라도 공유하고 싶다면 리액트 네이티브가 학습 비용 면에서 가장 합리적입니다. 반대로 모바일이 메인이고 화면 일관성을 최우선으로 두며 새 언어 학습에 거부감이 없다면 플러터가 좋습니다. 둘 다 무료라 손해가 없으니, 같은 간단한 화면을 양쪽으로 하루씩 만들어 보고 손에 맞는 쪽을 고르는 게 가장 확실합니다.
리액트 네이티브 vs 플러터ReactNativevsFlutter모바일프레임워크Frontend