"앱을 만들려면 뭘로 만들어야 하나요?"라는 질문에 대한 정답은 팀 규모에 따라 다릅니다. 이 글은 혼자 만들고 혼자 운영하는 1인 개발 관점에서 PWA(웹앱)와 네이티브 계열(Flutter 등 크로스플랫폼 포함)을 비교합니다. 저희는 두 방식 모두로 제품을 출시해 봤습니다. 쿠폰북은 PWA+TWA로, 라이트온 AI 노트는 Flutter로 만들었습니다.
비교 기준은 '만드는 비용'이 아니라 '유지하는 비용'
1인 개발의 병목은 첫 출시가 아니라 그 이후입니다. 앱이 3개, 5개로 늘어나면 유지보수 시간이 전부를 결정합니다. 그래서 비교 축을 이렇게 잡았습니다.
| 기준 | PWA (+TWA) | Flutter 네이티브 |
|---|---|---|
| 업데이트 배포 | 웹 배포 즉시 반영. 스토어 재심사 불필요 | 매번 스토어 심사 통과 필요 |
| 플랫폼 커버리지 | 웹·안드로이드는 강함. iOS는 설치 UX가 약함 | iOS·안드로이드 동등하게 강함 |
| 기기 기능 접근 | 카메라·위치·알림 등 표준 API는 충분. 통화·백그라운드 등 깊은 기능은 제한 | 사실상 전부 접근 가능 |
| 성능 체감 | 도구 앱 수준에서는 차이 없음 | 애니메이션 무거운 화면에서 우위 |
| 빌드 인프라 | 없음(정적 호스팅이면 끝) | SDK·서명·스토어 파이프라인 유지 필요 |
PWA를 고르는 경우
기록·조회 중심의 도구 앱이라면 PWA가 압도적으로 유리합니다. 쿠폰북이 전형적인 예입니다. 데이터는 IndexedDB에 로컬 저장하고, 서비스 워커로 오프라인을 지원하고, 스토어 노출이 필요해지면 TWA로 감싸면 됩니다. 무엇보다 버그 수정이 웹 배포 한 번으로 모든 사용자에게 즉시 반영된다는 점이 1인 운영에서는 결정적입니다.
네이티브(Flutter)를 고르는 경우
다음 중 하나라도 해당하면 네이티브로 갑니다. ① 통화, 백그라운드 오디오, 위젯, 시스템 연동처럼 웹이 닿지 못하는 기능이 핵심일 때 ② iOS 사용자가 주 타깃일 때(iOS의 PWA 설치 경험은 여전히 불친절합니다) ③ 오프라인에서 무거운 미디어 처리가 필요할 때. 모모아이가 통화라는 시스템 기능을 다루기 때문에 네이티브 계열인 것이 그 예입니다.
실무 요약
- 확신이 없으면 PWA로 시작하세요. 검증에 실패해도 매몰 비용이 가장 작고, 성공하면 TWA로 스토어 진출이 가능합니다.
- 시스템 기능(통화·백그라운드·위젯)이 제품의 핵심이면 처음부터 네이티브로 가세요. 나중에 갈아타는 비용이 더 큽니다.
- 어느 쪽이든 데이터 계층을 UI에서 분리해 두면, 훗날 스택을 옮겨도 도메인 로직은 재사용됩니다.