Obsidian으로 지식 저장소를 관리하다 보면 기기 사이의 동기화 문제로 고민하게 됩니다. 공식 유료 서비스는 비용과 외부 서버 저장이라는 제약이 따르고, Git이나 WebDAV 기반 대안은 파일이 늘어나면 동기화가 불안정해집니다. 이 문제를 해결하기 위해 개발된 오픈소스 플러그인 Osync 가 주목을 받습니다.

개인 서버 기반의 종단간 암호화 동기화

Osync 는 사용자 데이터를 온전히 통제하면서 여러 기기를 실시간으로 연결합니다. 보안과 성능을 모두 잡았습니다. 기기 외부로 데이터가 나가기 전에 로컬에서 AES-256-GCM 방식으로 암호화합니다. 서버에는 암호화된 블롭(blob) 형태로만 저장하므로 서버 운영자조차 본문 내용을 읽지 못합니다.

암호화 키는 사용자 비밀번호를 기반으로 Argon2id 알고리즘을 적용해 안전하게 생성합니다. 비밀번호를 변경하더라도 기존 데이터를 노출하지 않고 다시 암호화합니다.

세분화된 기기 제어와 자원 관리

기기별 환경에 맞춰 동기화 범위를 다르게 지정합니다. 모바일 기기와 PC의 저장 용량 한계는 서로 다릅니다. Osync 는 이미지, 오디오, 비디오, PDF 등 대용량 첨부파일의 동기화 여부를 기기마다 따로 설정하도록 지원합니다. 설정 폴더(.obsidian)를 동기화할지 여부도 기기별로 토글합니다.

특정 폴더를 동기화 대상에서 제외하는 세부 제어도 제공합니다. 동시 수정으로 발생하는 충돌은 전용 충돌 해결 창에서 직접 조율합니다. 상태 표시줄에서 현재 동기화 상태를 한눈에 보여주며 설정 화면의 진행 표시줄로 전송 상태를 파악합니다.

주요 명령어와 설치 방법

간단한 명령어로 모든 싱크 환경을 제어합니다. 자주 쓰는 기능은 명령 팔레트(Command Palette)에서 호출합니다. 서버는 Docker Compose로 간단히 실행하며 플러그인은 Obsidian 커뮤니티 플러그인 장터에서 바로 내려받습니다. 주요 제어 명령은 아래와 같습니다.

  1. Sign in / Sign out: 현재 기기 인증을 수행하거나 해제합니다.
  2. Create remote vault: 서버에 암호화된 신규 저장소를 생성합니다.
  3. Connect / Disconnect remote vault: 기존 원격 저장소와 연결하거나 연결을 끊습니다.
  4. Change vault password: 새로운 비밀번호로 저장소 키를 재암호화합니다.
  5. View version history: 개별 파일의 이전 버전 기록을 조회하고 복원합니다.
  6. Toggle sync pause / Reset local sync state: 동기화를 일시 정지하거나 서버 기준으로 전체 재동기화를 강제합니다.

개인 데이터 주권을 지키며 여러 기기에서 지식 저장소를 실시간으로 동기화하려는 엔지니어에게 든든한 도구입니다.

요약

  • 종단간 암호화(E2EE)와 Argon2id 기반 키 유도로 자체 빌드 서버에서도 데이터 보안을 완벽히 보장합니다.
  • 기기별로 첨부파일 종류나 특정 폴더의 동기화 여부를 세부 제어하여 모바일 환경의 자원 제약을 해결합니다.
  • Docker Compose 서버 배포와 Obsidian 커뮤니티 플러그인 생태계 통합으로 자가 호스팅 진입 장벽을 낮췄습니다.