본문으로 바로가기

Tauri 정적 앱의 서버 capability 경계

Tauri의 output: export 빌드는 Next.js 서버 route와 redirect를 포함하지 않는다. 웹과 같은 코드를 공유한다는 사실이 같은 실행 능력을 보장하지 않는다.

4회 조회약 2분 읽기
X에 공유 새 창에서 열림
목차

Tauri의 output: export 빌드는 Next.js 서버 route와 redirect를 포함하지 않는다. 웹과 같은 코드를 공유한다는 사실이 같은 실행 능력을 보장하지 않는다.

실행 환경별 책임

서버 웹

Route Handler·인증·배치처럼 서버 수명이 필요한 기능을 실행합니다.

정적 웹

빌드된 화면과 허용된 원격 API만 사용합니다.

Tauri 앱

정적 화면 위에 명시적으로 허용된 파일·SQLite·OS capability를 더합니다.

공통 UX

미지원은 장애로 재시도하지 않고 가능한 실행 경로를 안내합니다.

실패를 404로 표현하지 않는다

서버 소유인 /api/batch/init를 정적 앱에서 호출하면 사용자는 원인을 알 수 없는 오류를 본다. 런타임에서 Tauri를 판정하고 배치 초기화를 호출하지 않으며, unsupported: server-owned-tauri-static 같은 명시적 상태를 반환한다.

화면은 이 상태를 “이 기능은 웹 서버에서 실행됩니다”와 웹 사용 경로로 연결할 수 있다. 로그에는 기능명과 플랫폼만 남기고 토큰이나 원격 endpoint를 넣지 않는다.

플랫폼별 판정

기능 종류 웹 SSR 정적 웹 Tauri 실패 UX
서버 Route Handler 가능 불가 불가 웹 서버 경로 안내
공개 원격 API 가능 가능 allowlist 시 가능 네트워크·권한 분리
로컬 파일·SQLite 불가 불가 capability 허용 시 가능 설정/권한 안내
background scheduler 서버 소유 호스트별 앱 lifecycle 종속 마지막 실행 시각
type CapabilityResult<T> =
  | { status: "available"; value: T }
  | { status: "unsupported"; reason: "server-owned-tauri-static" }
  | { status: "failed"; retryable: boolean };

unsupported는 장애가 아니므로 무한 재시도나 오류 알림을 만들지 않습니다. failed와 구분해야 사용자가 설치를 고치려 하지 않고 실제 장애 지표도 오염되지 않습니다.

기능 추가 체크리스트

  • 정적 export에서 필요한 네트워크·IPC capability를 목록화한다.
  • 서버 전용 기능에는 로딩·unsupported·재시도 상태를 설계한다.
  • window 접근은 함수 내부에서만 실행해 SSR을 안전하게 유지한다.
  • 웹과 Tauri의 지원 범위를 테스트로 고정한다.

관련 강좌: 부분 실패·복구·플랫폼 경계를 교차 서비스 계약으로 닫기

이 글에서 만나는 용어

frontend 카테고리의 다른 글

카테고리 전체 보기 →

이 글이 도움이 되었나요?