Coti Lab
kuro editor
업데이트
4분

Syncthing: 클라우드 없이 기기간 파일 동기화하기

Syncthing 탈중앙화 파일 동기화

Nextcloud가 “중앙 서버에 파일을 올려두고 여러 기기가 내려받는” 클라우드 스토리지 모델이라면, Syncthing은 중앙 서버 자체를 아예 없애버려요. 등록된 기기들이 서로 직접 연결되어(P2P) 파일을 실시간으로 동기화하는 탈중앙화 방식인데, 그럼 Syncthing으로 클라우드 없이 기기 간 파일 동기화를 어떻게 할 수 있을까요?

중앙 서버가 없다는 것의 의미

일반적인 클라우드 동기화는 “내 파일 → 회사 서버 → 다른 기기”라는 경로를 거쳐요. Syncthing은 이 중간 단계 자체가 없어요. 노트북과 스마트폰, 홈서버가 모두 Syncthing을 설치하고 서로를 신뢰할 기기로 등록하면, 이 기기들이 로컬 네트워크나 인터넷을 통해 직접 연결되어 파일 변경 사항을 실시간으로 주고받아요.

이 구조 덕분에 다음과 같은 장점이 생겨요.

  • 저장 용량 제한 없음: 특정 서버의 디스크 용량에 얽매이지 않고, 참여하는 기기 각자의 저장 공간만큼 자유롭게 사용해요.
  • 오프라인 우선 동작: 인터넷이 끊겨도 같은 로컬 네트워크 안의 기기끼리는 계속 동기화돼요.
  • 종단간 암호화: 기기 간 통신은 TLS로 암호화되며, 중간에 데이터를 볼 수 있는 제3의 서버 자체가 존재하지 않아요.

실제 활용 시나리오

Syncthing은 사진 백업부터 다른 서비스의 백업 허브 역할까지, 기기 간 파일을 실시간으로 맞춰야 하는 상황 전반에 활용돼요.

  • 사진 자동 백업: 스마트폰의 사진 폴더를 홈서버와 동기화해두면, 사진을 찍는 즉시 백업이 이루어져요. Immich로 이미 사진을 관리 중이라면, 라이브러리 원본을 다른 기기로도 복제해두는 이중 백업 용도로 함께 쓰기 좋아요.
  • 여러 컴퓨터 간 작업 폴더 동기화: 데스크톱과 노트북에서 같은 프로젝트 폴더를 실시간으로 동일하게 유지할 수 있어요.
  • 다른 셀프호스팅 서비스의 백업 허브 역할: 각 서비스의 백업 파일을 홈서버의 한 폴더로 모으고, 이를 다시 원격지의 다른 기기(부모님 댁의 미니PC 등)와 동기화해 오프사이트 백업을 자동화할 수 있어요.

설치와 기기 등록 과정

각 기기에 Syncthing을 설치(데스크톱 앱, 모바일 앱, 혹은 Docker Compose 컨테이너)하면 고유한 기기 ID가 생성돼요. 두 기기를 연결하려면 서로의 기기 ID를 교환하고 승인하는 과정이 필요한데, QR 코드를 스캔하는 방식으로 이 과정을 간편하게 처리할 수 있어요. 이후 동기화하고 싶은 폴더를 지정하고 상대 기기와 공유하면, 그 순간부터 실시간 동기화가 시작돼요.

services:
  syncthing:
    image: syncthing/syncthing:latest
    ports:
      - "8384:8384"
      - "22000:22000/tcp"
      - "21027:21027/udp"
    volumes:
      - syncthing_config:/var/syncthing/config
      - /path/to/sync:/var/syncthing/data
volumes:
  syncthing_config:

버전 관리와 충돌 처리

같은 파일을 여러 기기에서 동시에 수정하면 충돌이 발생할 수 있는데, Syncthing은 이런 경우 파일을 덮어쓰지 않고 .sync-conflict 접미사가 붙은 별도 파일로 양쪽을 모두 보존해요. 또한 파일 버전 관리 기능을 활성화하면, 실수로 삭제하거나 덮어쓴 파일도 일정 기간 이전 버전을 보관해두어 복구할 수 있어요.

Nextcloud와의 차이, 그리고 함께 쓰는 조합

Nextcloud는 웹 인터페이스, 캘린더/연락처, 협업 문서 편집 같은 풍부한 부가 기능을 제공하지만 서버가 다운되면 접근이 완전히 막혀요. Syncthing은 이런 부가 기능은 없지만, 서버 하나가 다운되어도 나머지 기기끼리는 여전히 동기화된 최신 파일을 갖고 있다는 회복탄력성이 강점이에요. 실제로 많은 사용자가 Nextcloud로 협업/공유가 필요한 파일을 관리하고, Syncthing으로는 순수한 기기 간 백업/동기화 용도로 두 도구를 병행해요.

결론

Syncthing은 “동기화를 위해 반드시 중앙 서버가 필요하지는 않다”는 걸 보여주는 흥미로운 프로젝트예요. 특히 여러 기기와 여러 장소(집, 부모님 댁, 사무실)에 걸쳐 자동으로 파일을 이중화하고 싶은 사용자에게, 별도의 관리형 서버 없이도 견고한 백업 체계를 만들어주는 실용적인 도구예요.

자주 묻는 질문

Q1. 서버가 다운되면 파일 동기화도 멈추나요?

아니요, 중앙 서버 자체가 없는 구조라 특정 기기 하나가 다운되어도 나머지 기기끼리는 여전히 동기화된 최신 파일을 갖고 있어요.

Q2. 인터넷이 끊기면 동기화가 안 되나요?

같은 로컬 네트워크 안에 있는 기기끼리는 인터넷이 끊겨도 계속 동기화되는 오프라인 우선 구조예요.

Q3. 같은 파일을 두 기기에서 동시에 수정하면 어떻게 되나요?

파일을 덮어쓰지 않고 `.sync-conflict` 접미사가 붙은 별도 파일로 양쪽을 모두 보존해서, 나중에 직접 확인하고 병합할 수 있어요.

Q4. Nextcloud와 Syncthing 중 뭘 써야 하나요?

웹 인터페이스나 캘린더 같은 협업 기능이 필요하면 Nextcloud가, 서버 없이 견고한 기기 간 백업만 필요하면 Syncthing이 맞고, 많은 사용자가 둘을 함께 써요.

Q5. 기기를 연결하려면 복잡한 설정이 필요한가요?

아니요, 서로의 기기 ID를 QR 코드로 스캔해 교환하고 승인하면 돼요. 이후 동기화할 폴더를 지정해 공유하면 바로 실시간 동기화가 시작돼요.

k
kuro editor 자료 조사하고 분석하고 글을 읽기 쉽게 작성합니다
프로필

댓글

첫 번째 댓글을 남겨보세요!