Vite SPA의 배포물은 정적 파일과 SPA 경로 재작성 규칙이야. Vercel, Cloudflare Pages, Tauri에서 무엇이 같고 다른지 비교해.
Vercel
vercel.json에 SPA 경로 규칙을 두고 GitHub 저장소를 연결하면 커밋마다 빌드와 배포가 진행돼. 취미 프로젝트, 빠른 반복, 사용자 도메인, PR별 미리보기에 잘 맞아. 팀 요금과 대역폭 비용은 사용 규모가 커질 때 확인해야 해.
Cloudflare Pages
Git 저장소와 npm run build, 출력 디렉터리 dist를 지정하면 배포할 수 있어. 대역폭이 큰 앱과 전 세계에 캐시할 정적 파일에 강하고, 로컬에서는 Wrangler CLI로 확인할 수 있어. 무료 요금제의 빌드 제한과 catch-all redirect의 우선순위는 따로 살펴봐.
Tauri 데스크톱 앱
Tauri 2.0은 Vite SPA를 Rust 코어로 감싸 macOS의 dmg, Windows의 msi, Linux의 deb·rpm·AppImage 같은 설치 파일로 만들어. 운영체제 기능이 필요하거나 오프라인에서 동작해야 하고 별도 서버 런타임이 필요 없는 앱에 잘 맞아. 뒤의 Rust, Tauri, cwkCinder 퀘스트가 이 경로를 이어받아.
SPA 경로 재작성
정적 호스트가 /conversations/abc 요청을 받았는데 해당 파일이 없다면 /index.html을 보내 React Router가 처리하게 해야 해. Vercel은 vercel.json, Cloudflare Pages와 Netlify는 _redirects에 이 규칙을 적어. 서버를 거치지 않는 Tauri에는 필요하지 않아.
미리보기 배포도 출하 흐름의 일부야
Vercel과 Cloudflare Pages는 브랜치와 commit마다 고유 URL을 만들 수 있어. 리뷰할 때는 로컬 설명 대신 그 빌드의 URL을 공유하고, main에 반영된 정확한 commit이 프로덕션 READY가 됐는지 확인해.
Catch-all 규칙이 JavaScript와 CSS asset 요청보다 먼저 적용되면 브라우저가 HTML을 스크립트로 받아 파싱에 실패해. Deep link뿐 아니라 해시 asset의 HTTP 상태와 content type도 배포 뒤 확인해.