Skip to content

다중 디바이스 동기화 개요

🚧 설계 단계 — 아직 구현 안 됨

이 페이지는 ainote 의 향후 기능을 미리 문서화한 것입니다. 현재 @ainote/mcp v1.1.x 에는 vault / sync 도구가 포함돼 있지 않습니다. 도구 호출 시 Tool not found 에러를 받게 됩니다.

ainote 는 Star topology + HLC + LWW 모델로 여러 디바이스에서 동일한 vault 를 유지합니다.

핵심 원칙

  1. Star topology — 각 디바이스는 ainote vault (hub) 와만 sync. 디바이스끼리 직접 X.
  2. HLC (Hybrid Logical Clock) — wall-clock + counter 로 시계 어긋남(클럭 드리프트) 방지하면서 시간 기반 정렬.
  3. LWW (Last-Write-Wins) — 양쪽 변경 시 시점 우선. 단 5분 이내 충돌은 수동 검토.
  4. Local source of truth — 충돌 시 기본은 로컬 우선 (사용자 의도가 가장 최근).

4가지 sync 케이스

sync(file):
  L = local sha256, R = remote git_sha, S = state.json[file]

  1. L == S.local AND R == S.remote   →  SKIP (변경 없음)
  2. L != S.local AND R == S.remote   →  PUSH (로컬만 변경)
  3. L == S.local AND R != S.remote   →  PULL (원격만 변경)
  4. L != S.local AND R != S.remote   →  CONFLICT
       4a. |L_mtime - R_updated| ≥ 5분  →  auto LWW (newer wins)
       4b. < 5분                       →  manual (diff 저장 → 사용자 결정)

안전장치

  • --dry-run — 무엇을 push/pull 할지만 출력 (실제 변경 X)
  • --max-delete 30% — 단일 sync 에서 30% 이상 파일 삭제 시 abort
  • log/{YYYY-MM}.jsonl — append-only 이벤트 로그 (디바이스/시점/경로/액션 5-way 추적)
  • conflicts/ — 미해결 충돌은 diff 로 보관 (잃어버리지 않음)

다음 단계

설계 문서

이 동기화 시스템의 전체 설계는 global/ainote-sync-redesign.md 참조. 산업 패턴 조사 (rclone bisync · Syncthing · Unison · CRDT) + 우리 케이스 적합성 분석 포함.

MIT License · ainote.dev