Devsync
dotfile을 Git으로 동기화하는 CLI
Devsync는 개발 환경 설정 파일(dotfile)을 Git으로 동기화하는 CLI 도구예요. 여러 기기에서 동일한 개발 환경을 유지하고 싶은 개발자를 위해 만들어졌어요.
Devsync가 할 수 있는 것
섹션 제목: “Devsync가 할 수 있는 것”- 파일·디렉터리 추적:
track명령으로 홈 디렉터리의 파일이나 폴더를 동기화 대상으로 등록할 수 있어요. - Push / Pull 동기화:
push로 로컬 설정을 저장소에 반영하고,pull로 저장소 내용을 로컬에 적용해요. - 시크릿 암호화: age 암호화를 활용해 토큰이나 키 같은 민감한 파일을 안전하게 저장하고 동기화할 수 있어요.
- 프로파일: 기기마다 다른 프로파일을 지정해 일부 설정만 선택적으로 동기화할 수 있어요.
- 플랫폼별 경로 지원: 동일한 설정을 Windows, macOS, Linux, WSL에서 각각 다른 경로로 관리할 수 있어요.
- 변경 미리 보기:
--dry-run플래그나status명령으로 적용 전에 어떤 변경이 생기는지 확인할 수 있어요. - 상태 점검:
doctor명령으로 저장소 상태, 설정, 추적 경로를 한 번에 검사할 수 있어요.
다른 도구와의 차이
섹션 제목: “다른 도구와의 차이”이미 세상에는 stow, chezmoi 같은 훌륭한 dotfile 동기화 도구가 있어요.
이 도구들의 공통점은 저장소를 진실의 원천(source of truth) 으로 삼는다는 거예요. stow는 홈 디렉터리의 파일을 저장소 안의 파일에 대한 심볼릭 링크로 연결하고, chezmoi는 저장소를 먼저 편집한 뒤 로컬에 적용하는 방식이에요. 덕분에 저장소 상태가 항상 명확하지만, 그만큼 파일을 편집할 때도 도구를 거쳐야 해요. ~/.zshrc를 수정하려면 chezmoi edit ~/.zshrc를 먼저 실행해야 하고, stow를 쓴다면 저장소 구조에 맞게 파일을 미리 재배치해야 하죠.
Devsync는 반대로 생각해요. 진실의 원천은 항상 로컬 원본 파일이에요. 저장소는 동기화 사본일 뿐이고, push와 pull은 그 사이를 오가는 수단이에요. 설정 파일을 편집하고 싶을 땐 그냥 편집기로 열면 돼요. 동기화할 준비가 되면 devsync push 한 번으로 저장소에 반영하면 그만이에요.
물론 트레이드오프도 있어요. chezmoi가 제공하는 템플릿 기반의 파일 변환 기능은 Devsync에는 없어요. 기기마다 설정 파일의 내용 자체를 다르게 만들어야 한다면 chezmoi가 더 잘 맞을 수 있어요. Devsync는 그보다 기존 편집 흐름을 그대로 유지하면서 여러 기기에 설정을 동기화하는 것을 우선으로 삼아요.