site-icon Hong Cheung
Sep 13, 2025

나의 궁극의 스택 선택.

마침내 정착한 것은…

Expo - 웹과 모바일 모두를 위해

순수 웹 앱을 개발하고 Capacitor 같은 것으로 감싸는 편리함을 원했지만(심지어 Tauri도 포함해서), 웹뷰가 현대 기술과 너무 다르게 동작하는 탓에 Android에서 작동시키는 데 애를 먹었다.

Tauri는 데스크톱에 집중할 수 있다는 점이 장점이다. 그러나 기껏해야 모든 플랫폼을 위한 래퍼에 불과하다. 웹 기술의 한계, 예컨대 휴대폰에서 드래그 제스처를 위한 우회 방법이 필요하다든지, 오프라인 저장 용량 같은 문제를 겪게 될 것이다.

어쨌든 나중에 데스크톱 앱을 원한다면 Expo React Native 프로젝트를 Electron으로 감쌀 수도 있다.

LegendState

MobX(내가 가장 좋아했던 것)보다 더 효율적이고 현대적이라고 주장한다. 하지만 이 프로젝트에서 이것을 사용하는 주된 이유는 Supabase와의 오프라인 동기화를 위한 내장 플러그인이다. 몇 가지 버그와 우회 방법이 필요하지만, 지금까지는 잘 작동하고 있다.

웹에서는 IndexedDB를, 모바일에서는 SQLite를 사용할 수 있는데, 이는 모든 플랫폼의 장점을 최대한 활용하고자 하는 내가 정확히 원하는 바다.

Supabase

단순히 Postgres가 최선의 선택이고, Auth와 Stripe 통합을 기본으로 지원하기 때문이다. RxDB와 함께 Appwrite를 셀프 호스팅해 사용해 보았지만, 이상한 문제가 있었고 그것도 Capacitor 프로젝트에서였기 때문에 지금은 일단 제쳐두었다. 나쁜 아이디어는 아니었다. 하지만 다음에는 Appwrite에도 LegendState를 사용할 것이다. RxDB는 모바일에서 SQLite를 무료로 사용할 수 없기 때문이다.

Stripe

온라인 SaaS를 위한 유일한 해결책이다. 그리고 Supabase와 함께 쓸 수 있는 스타터 템플릿이 있어서 그 위에 구축하고 있다.

마지막으로…

지금 해결해서 다행이다. 이제 이 스택으로 앱을 만들고 익숙해져서 내가 만들고 싶었던 다른 모든 앱을 만들기만 하면 된다.

너무 쉽다.

이전
Copyright 2026
사이트맵
개인정보 처리방침
서비스 약관

테마 제공 Astro-Yi