iSH Shell을 이용하여 옵시디언 iOS-Windows 동기화하기

@inup· May 23, 2025 · 11 min read

Obsidian은 다양한 운영체제 간의 데이터 동기화를 지원하는 마크다운(Markdown) 기반 노트 애플리케이션이다. 특히 Apple 생태계(Mac, iPhone, iPad)에서는 iCloud를 활용하여 비교적 간편하게 노트를 연동할 수 있다. 그러나 iCloud 기반의 동기화 방식은 Windows 운영체제와의 실시간 연동에 한계가 있으며, 이로 인해 플랫폼 간 원활한 자료 접근 및 수정이 어려울 수 있다. 이를 해결할 수 있는 방법으로 Obsidian에서는 자체 동기화 서비스인 'Obsidian Sync'를 제공하나, 이는 월간 4$ 가량의 유료 서비스로 비용 부담이 따른다.

이를 해결하기 위한 방안으로, iSH 앱을 활용하여 iOS 환경에서 간단한 Linux 셸을 구동시키고, Obsidian의 Vault를 GitHub 리포지토리와 연동하는 방법을 제안한다. 해당 설정이 완료된 이후에는 단 한 글자(p)의 명령어 입력만으로 pull, commit, push의 전 과정을 자동으로 처리할 수 있어, 비용 부담 없이도 효율적인 버전 관리 및 협업이 가능해진다.

본 가이드에서는 Git 및 Linux의 기본 개념을 전제하고 설명하므로, 해당 지식이 익숙하지 않으신 분께서는 사전에 관련 자료를 간략히 학습하신 후 따라오시길 권장드립니다.


1. 사용중인 Obsidian Vault를 원격 Git Repo에 업로드하기

Git 저장소 생성 및 초기 설정

  1. Git 저장소 초기화
    Vault가 저장된 디렉터리에서 터미널(Git Bash)을 열고, 로컬 저장소를 초기화한다.

    git init
  2. 원격 저장소 연결
    GitHub 웹 페이지에서 새 private/public 레포지토리를 생성한 뒤, 복사한 HTTPS 또는 SSH URL을 origin으로 추가한다.

    git remote add origin https://github.com/username/repo.git
  3. 기본 브랜치 이름 맞추기
    GitHub 기본 브랜치가 main이라면 로컬 브랜치 이름도 main으로 변경한다.

    git branch -M main
  4. .gitignore 파일 생성 및 편집

    2

    파일 탐색기 또는 Shell 명령어를 이용하여 Vault 내부 설정 폴더 경로(.obsidian/)를 버전 관리 대상에서 제외하도록 .gitignore를 생성한다.

  5. 변경 내용 스테이징 및 커밋
    모든 파일을 스테이징하고 초기 커밋을 수행한 후, 로컬 main 브랜치를 원격의 main 브랜치에 올린다.

    git add . 
    git commit -m "Initial commit"
    git push -u origin main

Obsidian 데스크톱 애플리케이션에서 자동 동기화 설정

1

Obsidian 설정(단축키: Ctrl + ,)에서 커뮤니티 플러그인을 활성화한 후 Git 플러그인을 설치 및 구성하면, 이후 직접 쉘 명령어를 입력하지 않아도 GitHub 원격 저장소에 대해 자동으로 Pull · Push가 이루어지도록 설정할 수 있다.


2. GitHub에서 개인 액세스 토큰 발급하기

GitHub > Settings > Developer Settings 의 Personal Access Tokens 생성 메뉴에서 새로운 fine-grained personal access token을 생성한다.

3

토큰 이름과 설명을 자유롭게 설정 후, 옵시디언 동기화를 위해 생성한 리포지토리의 접근을 허용한다.

4 마지막으로 Permissions > Contents의 접근 범위를 읽기/쓰기로 변경하면 모든 설정이 완료된다.


3. iOS에서 Obsidian Vault를 GitHub에 동기화하기

Obsidian 내려받기

iOS 기기(아이폰 또는 아이패드)에서 App Store를 열고 ‘Obsidian’ 앱을 검색하여 설치한다.
설치가 완료되면 Obsidian을 실행한 뒤, Create new vault를 선택하고 원하는 로컬 경로를 지정하여 신규 Vault를 생성한다.

iSH Shell에 Git 설치

7 App Store에서 ‘iSH Shell’ 앱을 검색하여 설치한다. iSH Shell은 iOS/iPadOS에서 Alpine Linux 기반의 경량 리눅스 셸 환경을 제공하는 오픈 소스 애플리케이션으로, 루트 권한 없이 패키지 관리(apk), 셸 스크립트 실행, Git/SSH 등을 지원한다.

8

iSH Shell을 실행하면 흰색 배경의 셸 인터페이스가 표시된다.

패키지 관리 도구를 최신 상태로 갱신하고 Git 설치를 위해 다음 명령어를 커맨드 라인에 입력한다.

apk update
apk add git

iOS 파일 시스템에 Vault 마운트

iSH 셸에서 iOS의 파일 시스템과 연결하기 위해 아래 명령어를 입력한다.

cd ~ && mkdir obsidian
mount -t ios . obsidian

9

해당 명령어를 입력 시 obsidian 이라는 디렉토리를 iOS 로컬 저장소와 마운트할 경로를 선택하는 모달이 사용자에게 나타난다.

좌측 사이드바의 나의 iPhone(또는 iPad)Obsidian 폴더 내부로 이동한다. 해당 위치에서 방금 생성한 Vault 폴더(예: <내 Vault 이름>)를 찾은 뒤, 폴더를 탭하고 화면 상단의 열기 버튼을 눌러 Obsidian에서 해당 Vault를 불러온다.

단, 반드시 Obsidian 루트 경로가 아닌 동기화하고자 하는 Vault의 경로를 불러와야 합니다.

불러오기가 완료되면, 이제 iSH Shell의 루트 하위 경로 ~/obsidian 이 실제 옵시디언 로컬 저장소와 연결이 완료된다.

이어서, Vault 내부에 잔여 파일이 남지 않도록 .obsidian/ 폴더를 삭제하는 다음 명령어를 입력한다.

cd ~/obsidian
rm -rf .obsidian

GitHub 리포지토리 클론

이제 Git 명령어를 통해 원격 저장소를 현재 폴더에 복제할 수 있다. 터미널에서 Vault가 위치한 디렉터리로 이동한 뒤, 아래 명령어를 실행한다.

cd ~/obsidian
git clone https://<YOUR_GITHUB_TOKEN>@github.com/<YOUR_USERNAME>/<YOUR_REPO>.git .
  • '2. GitHub에서 개인 액세스 토큰 발급하기' 에서 발급한 토큰이 필요하다.
  • https://<YOUR_GITHUB_TOKEN>@github.com/...

    • <YOUR_GITHUB_TOKEN>에는 개인 액세스 토큰(PAT)을,
    • <YOUR_USERNAME>에는 GitHub 사용자명을,
    • <YOUR_REPO>에는 리포지토리명을 입력한다.

git clone 명령어 가장 마지막의 점(.)을 지우면 안 됩니다. 현재 폴더에 클론하기 위해 필요합니다.

Git 전역 설정

Commit 시 기록되는 사용자 이름과 이메일을 등록한다. 또한, '안전하지 않은 경로' 오류를 피하기 위해 safe.directory에 ~/obsidian 을 추가한다.

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global --add safe.directory ~/obsidian

동기화 작동 여부 확인

동기화가 정상적으로 이루어지는지 확인하려면, 원격 리포지토리에서 최신 변경 사항을 가져와야 한다(git pull).

# 현재 경로가 Vault(obsidian)가 아니라면
cd ~/obsidian

git pull

10 원격 리포지토리의 최신 변경 사항이 로컬에 성공적으로 반영되었다. 이제 iOS에서의 수정 내용이 원격에 정상적으로 푸시되는지 확인하기 위해, Obsidian 앱에서 메모를 하나 수정한 뒤 터미널에서 다음 명령어를 순서대로 실행한다.

git add .
git commit -m "iOS Sync"
git push

11

GitHub 앱 또는 웹 페이지에 접속하여 최신 커밋 목록을 확인한다. 이 과정을 통해 iOS에서 편집한 내용이 GitHub 원격 저장소에 제대로 반영되는지 검증할 수 있다.

4. 스크립트로 빠른 Pull-Push 설정하기

스크립트 작성

매번 git pull, add, commit 및 push 명령어를 입력하는 것은 번거로운 일이다. 아래 스크립트를 저장하여 iSH Shell에서 빠르게 Obsidian 메모를 동기화시킬 수 있다.

cd ~
cat > ~/obsync.sh << 'EOF'
#!/bin/sh
cd ~/obsidian || exit 1

git pull
git add .

MSG="vault backup: $(date '+%Y-%m-%d %H:%M:%S') (iOS)"

git commit -m "$MSG"
git push

EOF

chmod +x ~/obsync.sh

스크립트 실행 명령어 추가

아래 ln -sf 명령어를 입력해 ~/obsync.sh 스크립트를 /usr/local/bin 경로에 p라는 단축 명령어로 등록한다. (필요에 따라 p가 아닌 다른 단축 명령어를 등록하는 것도 가능하다.)

ln -sf ~/obsync.sh /usr/local/bin/p

12

git pull → 2. git add . → 3. git commit -m "vault backup: YYYY-MM-DD HH:MM:SS (iOS)" → 4. git push 가 순차적으로 실행되어, iSH 어느 경로에서든 p 만 입력하면 Obsidian의 동기화가 실행된다.


마무리

이제 iPhone에서도 Obsidian 노트를 작성한 뒤 iSH Shell에서 p만 입력해 주면, GitHub 리포지토리에 안전하게 백업·동기화할 수 있다.

@inup
언제나 감사합니다 👨‍💻