Skip to content

데스크톱 앱: 데이터 폴더 위치를 사용자가 지정할 수 있게 해주세요 #185

Description

@allpeaceclinic-max

데스크톱 앱: 데이터 폴더 위치를 사용자가 지정할 수 있게 해주세요

배경

여러 대의 맥(작업용 맥북 + 상시 가동 맥미니)에서 같은 회사를 쓰고 싶고, 회사 데이터를 NAS 동기화 폴더에 두어 백업 대상에 포함시키고 싶습니다.

소스에서 실행할 때(npm run dev)와 셀프호스트(scripts/install.sh)는 ARGO_ROOT로 데이터 루트를 지정할 수 있는데, 데스크톱 앱은 지정할 수 없습니다.

// src-tauri/src/lib.rs (v0.1.34)
let data_root = app.path().app_local_data_dir();.env("ARGO_ROOT", format!("{data_root}/workspaces"))

기존 환경변수를 보지 않고 항상 OS 앱 로컬 데이터 폴더로 고정합니다. 설정 UI에도 항목이 없어, 현재로선 앱 데이터 폴더를 심볼릭 링크로 바꿔치기하는 우회밖에 없습니다. 이 방법은 앱 업데이트로 폴더가 재생성되면 조용히 끊깁니다.

제안 ① — 기존 ARGO_ROOT를 존중 (최소 변경)

.env("ARGO_ROOT", std::env::var("ARGO_ROOT")
        .unwrap_or_else(|_| format!("{data_root}/workspaces")))
  • 지정하지 않은 사용자는 동작이 전혀 바뀌지 않습니다 (후방 호환)
  • 지정한 사람만 다른 경로를 씁니다
  • 소스 실행·셀프호스트와 동작이 통일됩니다

제안 ② — 설정에 「데이터 폴더」 항목 (더 친절한 형태)

이미 설정에 「데이터 내보내기」(경로 입력)와 「외부 작업 폴더」(경로 검증·등록)가 있으니, 같은 UI 패턴을 재사용할 수 있을 것 같습니다.

  • 경로 지정 → 검증(validateWorkRoot 계열) → 재시작 후 적용
  • 기존 데이터 이동 여부는 사용자 선택(이동 / 새로 시작)

감수할 수 있는 제약

경로를 옮긴 사용자가 책임져야 할 부분은 이해하고 있습니다.

  • 네트워크 볼륨이 마운트되지 않았을 때의 실패 — 명확한 에러 메시지만 있으면 충분합니다
  • 두 기기가 동시에 같은 폴더를 쓸 때의 충돌 — 사용자 책임
  • 성능 저하 가능성

참고

소스를 읽고 쓴 제안이라 구현 사정과 안 맞을 수 있습니다. 방향만 참고해 주셔도 감사하겠습니다. 좋은 제품 만들어 주셔서 고맙습니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions