맥미니 ↔ 맥북 메모리 동기화
실전 시나리오: 두 Mac 에서 같은 메모리/CLAUDE.md 사용.
시나리오
- 사무실: 맥미니 (24/7 켜져있음)
- 카페/이동: 맥북에어 (간헐적 사용)
- 양쪽에서 17개 프로젝트 작업, CLAUDE.md / 메모리 /
.cursorrules모두 동기화 필요
1회 셋업 (맥미니 — 메인)
A. CLI / 환경
bash
# ~/.zshrc
export AINOTE_API_URL="https://api.ainote.dev/api/mcp"
export AINOTE_API_KEY="<MACMINI_KEY>"
ainote() {
# ... shell 함수
}
source ~/.zshrcB. 모든 CLAUDE.md 일괄 등록
bash
ainote-push() { ... } # 정의
# 전역
ainote-push ~/CLAUDE.md global-claude-guidelines.md claude
# 17개 프로젝트
for proj in ~/launchcrew ~/tennis_bracket ~/keeps ~/triphelper \
~/realpick ~/talkk ~/krx_listing ~/krx_ai ...; do
if [ -f "$proj/CLAUDE.md" ]; then
name=$(basename "$proj" | tr '_' '-')
ainote-push "$proj/CLAUDE.md" "${name}-claude.md" claude
fi
done
# .cursorrules 들
for proj in ~/launchcrew ~/krx_ai; do
[ -f "$proj/.cursorrules" ] || continue
name=$(basename "$proj" | tr '_' '-')
ainote-push "$proj/.cursorrules" "${name}-cursorrules.md" cursor
doneC. 메모리 등록
bash
for md in ~/.claude/projects/*/memory/*.md; do
proj=$(basename $(dirname $(dirname "$md")) | sed 's/-Users-seunghan-//' | sed 's/-Users-seunghan/global/')
fname=$(basename "$md" .md)
title="${proj}-${fname}.md"
ainote-push "$md" "$title" memory
doneD. 정기 cron (맥미니)
bash
# crontab -e
*/15 * * * * /Users/seunghan/scripts/ainote-sync-all.sh >> /tmp/ainote.log 2>&12회 셋업 (맥북 — 새 기기)
A. 같은 CLI 셋업
bash
# ~/.zshrc 동일하게
# 단 AINOTE_API_KEY 는 새로 발급 (맥북용)키 발급:
bash
ainote login_and_get_key '{
"email":"me@example.com",
"password":"...",
"name":"Seunghan"
}'B. 일괄 pull
bash
# 모든 dev_doc 받기
ainote pull_dev_docs '{}'응답:
✓ /Users/seunghan/CLAUDE.md (created)
✓ /Users/seunghan/launchcrew/CLAUDE.md (created)
✓ /Users/seunghan/launchcrew/.cursorrules (created)
✓ /Users/seunghan/.claude/projects/-Users-seunghan-launchcrew/memory/MEMORY.md (created)
... (53 files)
✅ 53 dev_docs pulled, 0 errorsC. 같은 cron 설정
일상 사용
맥미니에서 CLAUDE.md 수정
bash
$EDITOR ~/launchcrew/CLAUDE.md
ainote-push ~/launchcrew/CLAUDE.md launchcrew-claude.md claude15분 뒤 맥북에서 자동 받음
cron 이 pull_dev_docs '{"since":"<last_sync>"}' 실행 → 변경된 파일만 갱신.
또는 Claude 에서 명시적
맥북 Claude:
ainote 에서 변경된 CLAUDE.md 다 받아줘충돌 시나리오
A. 맥미니 14:00 / 맥북 14:01 동시 수정
같은 파일 → 5분 임계 안 → conflict 디렉토리:
~/.claude/ainote-sync/conflicts/
└── 2026-05-07T14-01-00__claude-md__launchcrew-claude.md.diff다음 sync 막힘. 사용자가 수동:
bash
cat ~/.claude/ainote-sync/conflicts/...diff
$EDITOR /tmp/merged.md # 양쪽 합침
ainote sync_resolve launchcrew-claude.md --merge /tmp/merged.mdB. 맥미니 14:00 / 맥북 16:00
5분 이상 → LWW → 맥북 (HLC 더 큼) 이김. 맥미니 변경은 git history 에:
bash
cd ~/.ainote-vault/projects/launchcrew
git log -p CLAUDE.md추가 디바이스 (iPad)
iPad 는 stdio/SSE 어려움 → ChatGPT/Claude iOS 앱 + ainote 의 mobile app 사용.
ainote iOS 앱은 자체 sync 처리 — manifest 기반 시스템과 별개 (REST API).
비용
- 맥미니: 24/7 cron → 96 호출/일 (sync_list)
- 맥북: 15분마다 → 96 호출/일
- 합 192/20000 (free tier 의 1%)
여유 충분.