싱크띵(Syncthing), 여러 기기간 파일 동기화 애플리케이션
드롭박스 대신 무료로 사용 가능한 오픈소스 프로젝트

두 줄 요약

44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

요구사항

얼마 전 개인용 랩톱을 구입했더니, 회사에서 작업하던 내용을 집에 가서도 확인해보고 싶어졌습니다. 이를 위해 어떤 도구를 사용할까 고민했는데요. 요구 사항은 크게 두 가지였습니다.

  1. 내가 신경 쓰지 않아도 동기화되면 좋겠다. (이왕이면 동기화 속도도 빨랐으면)
  2. 동기화하지 않을 파일 패턴을 지정할 수 있으면 좋겠다.

드롭박스 등 여러 유료 도구를 찾아보았지만 딱히 마음에 들지 않았는데, 싱크띵Syncthing을 발견하여 정착했습니다. 여기서는 싱크띵Syncthing의 사용법을 간단히 알아보겠습니다.

싱크띵(Syncthing)

싱크띵은 오픈소스 동기화 프로그램입니다. 두 대 이상의 컴퓨터를 별도 서버 없이 동기화할 수 있습니다.

오픈소스 동기화 도구 싱크띵(Syncthing)
오픈소스 동기화 도구 싱크띵(Syncthing)

특징

장점으로 내세우는 부분은 개인 전용(중앙 서버 없음), 보안, 클라이언트별 인증이지만 제게는 별로 중요하진 않았고, 리눅스 명령어에 익숙하지 않은터라 GUI를 제공한다는 점은 꽤 매력적이었습니다.

싱크띵 GUI
싱크띵 GUI

설치하기

맥OS에서는 brew로 설치하기를 권합니다.

brew install syncthing

재부팅 후에도 계속 작동하게 하고 싶다면 다음 명령을 실행합니다.

brew services start syncthing

내장 GUI에 접근하려면 웹 브라우저에서 http://127.0.0.01:8384에 접근하면 됩니다.

맥OS에서 웹 GUI 대신 메뉴바로 관리할 수 있는 syncthing 앱도 있습니다.

brew cask install syncthing

(저는 딱히 필요하지 않아서 설치하지 않았습니다.)

동기화할 클라이언트 추가하기

여기서는 랩톱 office랩톱 private이 있다고 가정하겠습니다. 랩톱 office에서 메뉴의 Actions -> Show ID를 선택합니다.

Actions -> Show ID를 선택합니다
Actions -> Show ID를 선택합니다

다음과 같은 화면에서 ID를 복사해둡니다. (모바일 기기에서 랩톱 office를 추가한다면 ID 아래의 QR 코드를 찍어도 됩니다.)

ID를 복사합니다.
ID를 복사합니다.

이제 랩톱 private에서 오른쪽 아래의 Add Remote Device를 선택합니다.

Add Remote Device를 선택합니다
Add Remote Device를 선택합니다

랩톱 office에서 복사한 ID를 Device ID란에 입력하고, Device Nane에는 랩톱 office를 가리킬 이름을 넣습니다.

디바이스 추가(Add Device)
디바이스 추가(Add Device)

동기화할 디렉터리 추가하기

이제 동기화할 디렉터리를 추가할 차례입니다. Add Folder 버튼을 누릅니다.

Add Folder 버튼을 누릅니다
Add Folder 버튼을 누릅니다

Folder Path에 동기화할 디렉터리의 절대 경로를 넣습니다. Folder Label에는 설명 문구를 넣습니다. Folder ID는 자동으로 생성됩니다.

Add Folder 설정하기
Add Folder 설정하기

디렉터리 동기화하기

같은 창에서 Sharing 탭을 열면 어떤 기기와 동기화할지를 선택할 수 있습니다. 동기화할 기기가 많다면 여러 대를 추가할 수 있습니다.

Share 탭의 설정
Share 탭의 설정

동기화시 파일 버저닝하기

제겐 필요 없다고 생각해서 아직 사용하지 않는 기능이지만 소개해봅니다.

파일의 바뀐 내용을 모두 추적하는 버저닝 기능을 사용할 수도 있습니다. Simple File Versioning에서는 몇 단계 이전 버전까지 저장할지를 설정할 수 있고, Staggered File Versioning에서는 파일을 저장할 최장 기간을 선택할 수 있습니다. External File Versioning에서는 다른 도구를 사용해 버저닝을 할 수 있습니다. 자세한 설정법은 File Versioning 문서를 참고하시기 바랍니다.

이전 버전 파일들은 기본으로 동기화할 디렉터리 루트의 .stversions 디렉터리로 이동됩니다. (별도 지정할 수도 있습니다.)

파일 버저닝 설정
파일 버저닝 설정

동기화하지 않을 파일들을 걸러내기

공유하려는 디렉터리 루트 위치에 .stignore 파일을 만들면, 동기화하지 않을 파일을 패턴으로 지정할 수 있습니다. 다음을 보면 아시겠지만 .stignore 파일의 패턴 규칙은 .gitignore와 흡사합니다.

(?d).DS_Store  # 맥OS에 생성되는 .DS_Store를 걸러냅니다
foo            # foo 디렉터리를 걸러냅니다
*2             # 2로 끝나는 이름의 디렉터리/파일을 걸러냅니다
qu*            # qu로 시작하는 이름의 디렉터리/파일을 걸러냅니다
(?i)my pictures   # 대소문자를 구별하지 않고 my pictures와 일치하는
                  # 디렉터리/파일을 걸러냅니다

.stignore 파일을 수동으로 만들어도 되지만, GUI에서 만들 수도 있습니다.

동기화 대상 디렉터리의 Edit -> Ignore Patterns에서도 .stignore 파일을 편집할 수 있습니다
동기화 대상 디렉터리의 Edit -> Ignore Patterns에서도 .stignore 파일을 편집할 수 있습니다

이 외에 Advanced 탭에서 동기화 방향(주고받기, 받기 전용, 보내기 전용) 등의 옵션도 설정할 수 있습니다.

설정이 끝나면 디렉터리가 동기화되기 시작합니다. 기본 속도는 네트워크가 제공하는 대역폭 만큼이며 Settings -> Connections에서 속도를 제한할 수도 있습니다.

결론

직장과 집의 네트워크 대역폭을 그대로 활용할 수 있고, 제외할 파일 패턴도 지정할 수 있어서 제 요구사항엔 아주 잘 맞는 도구였습니다.

도움이 되셨나요?
RSS 리더 피들리에서 최신 글을 구독할 수 있습니다.
트위터, 페이스북으로 44BITS의 새소식을 전해드립니다.
✔ 44BITS의 다른 활동도 확인해보세요. 다양한 채널에서 만나볼 수 있습니다.
✔ 따뜻한 댓글 하나와 피드백은 큰 힘이 됩니다.
'아마존 웹 서비스 계정 생성 후 해야하는 IAM 보안 조치: 루트 사용자와 IAM 사용자의 차이' 대표 이미지

아마존 웹 서비스 계정 생성 후 해야하는 IAM 보안 조치: 루트 사용자와 IAM 사용자의 차이

🗒 기사, 2018-07-19 - 하나의 AWS 계정은 루트 사용자와 다수의 IAM 사용자로 구성된 다중 사용자 환경입니다. 아마존에서는 루트 계정을 사용하기보다는 IAM 사용자를 만들어 권한을 관리할 것을 권장하고 있습니다. 이를 중심으로 계정 생성 후에 적용해야하는 보안 조치들을 소개합니다.

그라파이트(Graphite)와 그라파나(Grafana)로 메트릭스 모니터링 시스템 구축하기

🗒 기사, 2014-07-25 - 그라파이트(Graphite)는 파이썬(Python) 기반의 메티릭스 수집 및 모니터링 도구입니다. 그라파이트는 다수의 모듈로 구성되어있어서 처음 접하면 구조를 이해하기가 어려울 수 있습니다. 이 글에서는 그라파이트의 아키텍처를 소개하고 도커를 사용해 각 모듈을 설치하고 연동하는 법을 소개합니다. 또한 그라파나(Grafana)를 사용해 그라파이트의 대시보드를 만들어봅니다.

도커(Docker) 입문편: 컨테이너 기초부터 서버 배포까지

🗒 기사, 2020-03-22 - 도커(Docker)는 2013년 등장한 컨테이너 기반 가상화 도구입니다. 도커를 사용하면 컨테이너를 쉽게 관리할 수 있으며, 이미지를 만들어 외부 서버에 배포하는 것도 가능합니다. 이 글은 도커를 시작하는 하는 사람들을 대상으로 도커의 기본 기능에 대해서 소개하고, 도커 허브와 디지털 오션을 사용해 직접 만든 이미지로 서버 애플리케이션을 배포하는 방법을 소개합니다.