SSD Nodes Learn 🎉 VPS $5.50/월부터
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-13

Syncthing vs Nextcloud VPS 선택 가이드

Syncthing은 P2P 동기화에 최적화되어 있고 Nextcloud는 계정 기반의 중앙 서버 역할을 수행합니다. VPS 운영 시 두 서비스의 구조적 차이와 백업이 아닌 동기화 도구로서의 한계를 명확히 비교하여 본인에게 적합한 솔루션을 선택하는 방법을 정리했습니다.

Syncthing과 Nextcloud: 선택을 결정짓는 차이점

Syncthing과 Nextcloud의 차이는 구조적인 단 한 가지에서 비롯되며, 나머지 모든 특성은 여기서 파생됩니다. Syncthing은 P2P(peer to peer) 방식입니다. 모든 기기가 폴더 전체를 보유하며, 그중 어떤 복사본도 권한을 가진 유일한 원본이 아닙니다. 반면 Nextcloud는 서버 방식입니다. 한 대의 기기가 파일을 보관하고, 그 앞에 사용자 계정이 위치하며, 클라이언트가 복사본을 내려받는 구조입니다.

이러한 이유로 Syncthing에는 공유 링크나 문서 웹 뷰어 기능이 없습니다. 브라우저가 요청할 수 있는 중앙 집중식 복사본이 존재하지 않기 때문입니다. Nextcloud는 이 두 기능을 모두 제공하며, 이를 위해 PHP 런타임, 데이터베이스 서버, 웹 서버, 그리고 TLS(transport layer security)를 위한 리버스 프록시가 필요합니다.

관련된 모든 기기가 본인 소유라면 Syncthing을 선택하십시오. 브라우저를 통해 접근해야 하거나 다른 사람과 파일을 공유해야 한다면 Nextcloud를 선택하십시오.

각 설계에서 VPS가 실제로 수행하는 역할

Nextcloud를 실행하는 VPS는 데이터의 본거지입니다. 노트북의 로컬 복사본을 삭제해도 파일은 서버에 그대로 남아 있습니다. 서버가 항상 원본을 보관하기 때문입니다.

Syncthing을 실행하는 VPS는 다른 역할을 수행합니다. 바로 항상 켜져 있는 피어(peer)가 되는 것입니다. Syncthing은 동시에 온라인 상태인 두 장치 간에 데이터를 직접 전송합니다. 따라서 두 노트북이 동시에 켜져 있는 시간이 없다면 아무리 기다려도 동기화가 이루어지지 않습니다. 이때 잠들지 않는 VPS에 세 번째 피어를 추가하면 문제가 해결됩니다. 노트북 A가 09:00에 데이터를 밀어 넣고(push), 노트북 B가 22:00에 데이터를 가져오면(pull), VPS가 그 사이에서 폴더를 유지합니다.

이는 매우 유용한 역할이지만, "Dropbox 대체재"라는 표현보다는 범위가 좁은 주장입니다. Syncthing은 클라이언트에게 보낼 수 있는 링크를 제공하지 않습니다. 만약 그러한 기능이 필요하다면, 여기서 멈추고 직접 호스팅하는 Dropbox 대체 서비스 모음을 읽어 보시기 바랍니다.

소형 VPS에서 각 서비스가 소모하는 비용

Syncthing은 단일 Go 바이너리입니다. 소켓에서 대기하고 로컬 데이터베이스에 파일 인덱스를 유지하는 것이 전체 스택의 전부입니다. 2.0 버전부터는 인덱스가 LevelDB 대신 SQLite를 사용하므로, 1.x 버전에서 업그레이드할 경우 첫 실행 시 일회성 마이그레이션이 진행됩니다. 폴더 세트가 크면 마이그레이션에 오랜 시간이 걸릴 수 있습니다. 완료될 때까지 기다려야 합니다. 다른 소프트웨어를 설치하거나 패치할 필요가 없습니다.

Nextcloud는 더 많은 자원이 필요합니다. 2026년 8월 기준으로, Nextcloud 35는 MariaDB 또는 PostgreSQL을 백엔드로 사용하며 Apache 2.4나 php-fpm을 포함한 nginx를 통해 서비스됩니다. PHP 8.3부터 8.5까지 지원합니다. 관리자 매뉴얼은 "프로세스당 최소 512MB RAM"을 권장하며, php-fpm은 여러 워커 프로세스를 동시에 실행합니다.

1 GB RAM을 가진 VPS에서 Syncthing은 여유롭게 동작하지만, Nextcloud는 자원이 부족합니다. 그렇다고 Nextcloud가 잘못된 선택이라는 의미는 아닙니다. 단지 하나가 아닌 네 개의 구성 요소를 최신 상태로 유지해야 하므로 더 큰 운영 부담이 따른다는 뜻입니다. Docker, TLS, 백업을 다루는 Nextcloud VPS 가이드에서 설명하는 컨테이너 방식은 이러한 부담을 줄이는 가장 수월한 방법입니다. 여기에 웹 브라우저 기반 문서 편집 기능을 추가하면 요구 사양은 더 높아지며, 이는 OnlyOffice와 Collabora 비교 문서에서 2 GB에서 4 GB RAM 환경을 기준으로 상세히 다룹니다.

VPS에 Syncthing 설치하기

Ubuntu는 syncthing 패키지를 제공하지만, 업스트림 버전보다 상당히 뒤처져 있습니다. 프로젝트 공식 저장소를 사용하십시오.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
syncthing --version

syncthing --version 명령은 syncthing v2으로 시작하는 줄을 출력해야 합니다. 그곳에 v1이 표시된다면 apt가 여전히 배포판 패키지를 우선시하고 있다는 뜻입니다. 업스트림 저장소의 우선순위를 높게 설정(pinning)한 뒤 다시 설치하십시오.

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

사용자가 로그인하지 않아도 부팅 시점에 시작되도록 일반 사용자 계정의 시스템 서비스로 실행하십시오.

sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.service

systemctl status 명령은 active (running)을 출력해야 합니다. 설정 및 인덱스 파일은 /home/youruser/.local/state/syncthing에 저장되며, 설정 파일은 config.xml입니다. Syncthing 1.27 이전 버전에 생성된 설치 환경은 여전히 ~/.config/syncthing을 사용하므로, 기기 간에 파일을 복사하기 전에 두 경로를 모두 확인하십시오.

그런 다음 포트를 개방하십시오. Syncthing은 동기화 프로토콜에 22000/TCP, QUIC 전송에 22000/UDP, 로컬 탐색에 21027/UDP를 사용합니다. 탐색 기능은 브로드캐스트와 멀티캐스트를 사용하는데, 이는 인터넷을 통과하지 못하므로 VPS에서는 앞의 두 포트만 필요합니다.

sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status

ufw status 명령은 두 규칙을 모두 나열해야 합니다. 만약 Status: inactive이 출력된다면 ufw가 아무것도 필터링하지 않는 상태이며, 호스팅 제공업체의 네트워크 방화벽만이 유일한 제어 수단입니다. 대부분의 호스트에서는 별도의 제어판을 제공하므로 해당 설정도 확인하십시오. 서비스가 실행 중임에도 원격 기기가 Disconnected 상태에서 멈춰 있다면, 보통 이 두 방화벽 중 하나가 여전히 닫혀 있다는 의미입니다.

Syncthing GUI를 외부 공개 없이 접속하기

웹 GUI(그래픽 사용자 인터페이스)는 기본적으로 127.0.0.1:8384에서 수신 대기하므로 서버 내부에서만 응답합니다. 이 기본 설정은 보호를 위한 것입니다. GUI에는 서버의 모든 폴더 경로를 다시 쓸 수 있는 API(애플리케이션 프로그래밍 인터페이스) 키가 포함되어 있기 때문입니다.

가장 먼저 외부로 공개하지 마십시오. 문서에서는 네트워크 주소에 바인딩하는 것의 의미를 다음과 같이 명확히 밝히고 있습니다. "컴퓨터의 LAN 주소를 지정한다고 해서 로컬 네트워크의 장치로만 접근이 제한되지는 않습니다!" 대신 노트북에서 SSH를 통해 포트를 포워딩하십시오.

ssh -L 8384:127.0.0.1:8384 youruser@your.vps.example

해당 세션이 유지되는 동안 로컬 브라우저에서 http://127.0.0.1:8384을 여십시오. 터널은 SSH 세션과 함께 종료되므로 이후에는 아무것도 수신 대기 상태로 남지 않습니다.

GUI에 직접 접근해야 한다면 먼저 자격 증명을 설정하십시오. 서버에는 브라우저가 없으므로 명령줄에서 수행해야 합니다.

sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service

-H는 중요합니다. 이것이 없으면 sudo은 root의 홈 디렉터리를 유지하게 되어 잘못된 config.xml를 수정하게 되기 때문입니다. 비밀번호 값으로 대시(-) 하나를 입력하면 syncthing generate가 표준 입력에서 비밀번호를 읽어오므로 셸 기록에 남지 않으며, 파일에 기록되기 전에 값이 해시 처리됩니다. 로그인에 성공하면 GUI 설정에서 HTTPS를 활성화하십시오.

Syncthing이 사용자의 실수를 전파하는 이유

Syncthing FAQ는 백업에 관한 질문에 대해 다음과 같이 답합니다. "Syncthing은 파일의 모든 변경 사항(수정, 삭제 등)이 모든 기기에 전파되므로 훌륭한 백업 애플리케이션이 아닙니다."

노트북에서 실수로 폴더를 삭제하면 Syncthing은 설계된 대로 정확하게 동작합니다. 몇 초 만에 모든 기기에서 해당 폴더를 삭제합니다. 동기화는 일치를 의미하며, 일치에는 파일이 사라졌다는 사실에 동의하는 것도 포함됩니다.

파일 버전 관리가 이를 완화하는 방법이지만, 직접 활성화하지 않으면 기본적으로 꺼져 있습니다. 문서에 따르면 버전 관리는 "기본적으로 '파일 버전 관리 없음', 즉 파일의 이전 복사본을 보관하지 않음"으로 설정되어 있습니다. 폴더별로 4가지 전략을 사용할 수 있습니다. Trash Can은 원격 변경으로 삭제되거나 교체된 각 파일의 복사본을 하나씩 보관합니다. Simple은 파일당 지정된 개수만큼 이전 버전을 유지합니다. Staggered는 시간이 지남에 따라 기록을 줄여나가며, 하루 동안은 시간별 복사본을, 한 달 동안은 일별 복사본을 보관하는 식으로 관리합니다. External은 사용자가 작성한 명령에 각 결정 권한을 위임합니다. 이전 복사본은 공유 폴더 내부의 .stversions 디렉터리로 이동합니다.

VPS 피어에는 Staggered를 설정하고 노트북에는 버전 관리를 끄는 방식을 권장합니다. 항상 켜져 있는 피어가 기록을 유지하므로 노트북은 가벼운 상태를 유지할 수 있습니다.

Nextcloud는 이 문제를 더 잘 처리하지만, 여전히 백업 도구는 아닙니다. 삭제된 파일은 휴지통으로 이동하고 수정된 파일은 Versions 앱을 통해 보관되지만, 둘 다 디스크 공간이 차면 자동으로 정리됩니다. 노트북에서 파일을 암호화하는 프로세스가 실행되면 암호화된 버전이 동기화되고, 원본 복사본은 자체 일정에 따라 삭제됩니다.

어떤 도구를 사용하든 그 기반에는 실제 백업이 필요합니다. 별도의 프로그램으로 스냅샷을 생성하여 동기화 클라이언트가 접근할 수 없는 곳에 저장해야 하며, 복구가 정상적으로 작동하는지 최소 한 번은 테스트해야 합니다. restic과 BorgBackup 비교 문서에서 데이터 디렉터리를 지정할 대상을 확인할 수 있습니다.

두 도구 간의 충돌 처리 방식 차이

두 도구 모두 동기화 시점 사이에 동일한 파일이 양쪽에서 변경되면 충돌 파일을 생성합니다. 차이점은 이 충돌을 누가 확인하느냐에 있습니다.

Syncthing은 변경된 파일 중 하나를 <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>로 이름을 바꿉니다. 수정 시간이 더 오래된 복사본이 패배합니다. 수정 시간이 동일할 경우, 장치 ID의 상위 63비트 값이 더 큰 장치가 패배하게 되는데, 이는 임의적이지만 모든 피어에서 동일한 결과로 이어집니다. 그다음 사용자가 예상하지 못하는 부분이 발생합니다. 이러한 파일들은 "생성된 이후 일반 파일로 취급되므로, 장치 간에 전파"됩니다. 모든 피어가 충돌 복사본을 받게 됩니다. 이를 정리하려면 한 번 삭제하여 동기화하면 되지만, 그전에 모든 기기에서 해당 파일을 보게 됩니다.

Nextcloud 데스크톱 클라이언트는 <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>(예: mydata (conflicted copy 2018-04-10 093612).txt)을 작성하며, 기본적으로 해당 파일을 업로드하지 않습니다. 클라이언트 매뉴얼은 그 이유를 다음과 같이 설명합니다. 변경을 수행한 작성자가 이를 해결하는 데 가장 적합하며, 다른 사용자에게 충돌을 보여주는 것은 혼란만 가중하기 때문입니다. 반대로 동작하게 하려면 클라이언트 환경 변수에 OWNCLOUD_UPLOAD_CONFLICT_FILES=1을 설정하십시오.

결론적으로 Syncthing의 충돌은 클러스터 전체에서 발생하는 이벤트인 반면, Nextcloud의 충돌은 특정 데스크톱 한 곳에 머무릅니다.

폴더 유형을 활용하여 Syncthing의 서버 보안 강화하기

Syncthing은 세 가지 폴더 유형을 제공하며, VPS에서 적절한 유형을 선택하면 다양한 사고를 미연에 방지할 수 있습니다.

  • Send & Receive는 기본 설정입니다. 변경 사항이 양방향으로 동기화됩니다.
  • Send Only는 클러스터에서 보내는 모든 변경 사항을 무시합니다. 데이터를 게시만 해야 하는 장치에 사용하십시오. 동기화 상태가 어긋나면 GUI에 빨간색 "Override Changes" 버튼이 표시되며, 이를 누르면 로컬 상태가 모든 장치로 강제 전파됩니다.
  • Receive Only는 클러스터의 변경 사항을 적용하되 로컬에서 발생한 수정 사항은 전송하지 않습니다. 아카이브 용도로 사용하는 VPS에 적합합니다. 로컬에서 수정이 발생하면 빨간색 "Revert Local Changes" 버튼이 표시됩니다.

VPS의 폴더를 Receive Only로 설정하고 Staggered versioning을 활성화하면 버전 관리가 포함된 미러를 구성할 수 있습니다. 삭제 작업은 클러스터의 정상적인 변경 사항으로 간주되므로 노트북에서 파일을 삭제하면 서버에서도 삭제되지만, 이전 복사본은 완전히 사라지지 않고 .stversions에 보관됩니다.

어떤 것을 선택해야 하는가

아래의 7개 행은 사람들이 실제로 이 질문을 하는 이유를 다룹니다.

ChartWhich tool fits which job
The data behind this chart
[
  {
    "label": "Keep two of my own laptops in sync",
    "pick": "Syncthing",
    "notes": "No accounts to manage. The VPS is the peer that is always awake."
  },
  {
    "label": "Send a download link to a client",
    "pick": "Nextcloud",
    "notes": "Syncthing has no public link sharing at all."
  },
  {
    "label": "Open a file from a borrowed browser",
    "pick": "Nextcloud",
    "notes": "The Syncthing GUI shows sync state, never file contents."
  },
  {
    "label": "Sync 200 GB between machines I own",
    "pick": "Syncthing",
    "notes": "Peers transfer directly. The VPS copy is optional."
  },
  {
    "label": "Phone photo upload with a store app",
    "pick": "Nextcloud",
    "notes": "The official Syncthing Android app ended in December 2024."
  },
  {
    "label": "Calendar and contacts alongside files",
    "pick": "Nextcloud",
    "notes": "Syncthing syncs files. That is the entire feature set."
  },
  {
    "label": "1 GB VPS with nothing else to spare",
    "pick": "Syncthing",
    "notes": "One Go binary against PHP plus a database plus a web server."
  }
]

첫 번째 행을 보십시오. 두 대의 개인용 노트북을 동기화 상태로 유지하는 것은 Syncthing을 가리키며, 이 경우 VPS는 절대 잠들지 않는 피어로서 제 역할을 다합니다. 브라우저, 링크, 또는 다른 사람이 관련된 모든 행은 반대 방향을 가리킵니다.

Nextcloud가 계속해서 우위를 점하고 있지만 그 점유율이 걱정된다면, Seafile과 Nextcloud 비교 문서를 읽어보십시오. Seafile은 기반이 되는 동기화 엔진은 다르지만 여전히 서버 모델을 유지하고 있기 때문입니다.

하나의 VPS에서 두 서비스 모두 실행하기

두 서비스는 상호 배타적이지 않습니다. Nextcloud로 공유와 캘린더를 관리하면서 Syncthing으로 개인 기기 간 파일을 동기화하는 구성은 흔히 사용되는 방식입니다.

함께 사용할 때 지켜야 할 규칙이 하나 있습니다. Syncthing이 Nextcloud의 데이터 디렉터리를 직접 참조하게 해서는 안 됩니다. Nextcloud는 모든 파일을 데이터베이스에서 추적하므로, 외부에서 디스크에 직접 추가된 파일은 데이터베이스가 이를 인식하기 전까지 웹 인터페이스에서 보이지 않습니다. Nextcloud 설치 디렉터리에서 다음 명령을 실행할 수 있습니다.

sudo -u www-data php occ files:scan --all

이 명령은 스캔한 파일과 폴더의 개수를 출력합니다. 이 명령을 타이머에 맞춰 실행하는 것은 근본적인 해결책이 아니라 임시방편에 불과합니다. 각 도구에 별도의 디렉터리를 할당하십시오. 서버에 무엇을 설치할지 아직 결정하지 못했다면, 동기화 도구를 먼저 선택하기보다 2026년 셀프 호스팅 가이드를 먼저 참고하는 것이 더 나은 시작점이 될 것입니다.

FAQ

Syncthing이 Dropbox를 대체할 수 있습니까?

본인 소유의 기기 간 데이터를 동기화하는 용도로는 가능합니다. Syncthing은 공개 공유 링크나 사용자 계정 개념이 없으며, 중앙 서버에 파일을 저장하지 않으므로 웹 인터페이스에서 파일 내용을 확인할 수 없습니다. 공식 Android 앱은 2024년 12월 릴리스를 끝으로 개발이 중단되어 Play Store에서 삭제되었으므로, 현재 모바일 지원은 커뮤니티 포크 버전에 의존해야 합니다. 타인에게 링크를 전달해야 하는 기능이 필요하다면 Nextcloud와 같은 별도의 서버 솔루션이 필요합니다.

Syncthing은 백업 도구입니까?

아니요, 프로젝트 측에서도 이를 명확히 밝히고 있습니다. 파일 삭제나 수정 사항은 모든 기기에 즉시 반영되므로, 실수로 파일을 삭제하면 몇 초 안에 모든 기기에서 사라집니다. 폴더별로 파일 버전 관리 기능을 켜고, 특히 항상 켜져 있는 피어에 Staggered 방식을 설정하면 .stversions 디렉터리를 통해 복구 시점을 확보할 수 있습니다. 하지만 이는 별도의 도구를 사용하여 분리된 저장소에 스냅샷을 생성하는 백업 방식을 대체할 수 없습니다.

Syncthing 웹 GUI에서 왜 파일이 보이지 않습니까?

GUI는 파일 브라우저가 아니라 동기화 상태를 관리하는 제어판이기 때문입니다. 여기에는 폴더, 기기, 전송 진행률, 충돌 횟수만 표시되며 파일 목록이나 내용을 열람하는 기능은 없습니다. 이는 피어 투 피어 설계에 따른 것으로, 파일은 사용자의 기기에 저장되며 VPS의 GUI는 파일을 이동시키는 프로세스만 관리합니다.

VPS에서 Syncthing을 위해 열어야 할 포트는 무엇입니까?

동기화 프로토콜을 위해 22000/TCP, QUIC 전송을 위해 22000/UDP 포트가 필요합니다. 21027/UDP 포트는 로컬 네트워크 내의 브로드캐스트 및 멀티캐스트 탐색용이므로 인터넷을 통해 통신하지 않습니다. 따라서 공개 서버에서는 이 포트를 닫아두십시오. 8384 포트의 GUI는 127.0.0.1에 바인딩하고 SSH 터널을 통해 접속하십시오. 방화벽 설정은 ufw와 별개로 운영되므로, 서비스 제공업체의 네트워크 방화벽 설정도 함께 확인해야 합니다.

동일한 VPS에서 Syncthing과 Nextcloud를 함께 실행할 수 있습니까?

네, 2 GB 이상의 RAM을 갖춘 서버라면 충분히 가능합니다. 다만 두 서비스의 디렉터리는 분리해서 관리하십시오. Nextcloud는 데이터베이스를 통해 파일을 인덱싱하므로, Syncthing이 Nextcloud 저장소에 파일을 직접 쓰더라도 occ files:scan가 실행되기 전까지는 웹 인터페이스에서 해당 파일을 볼 수 없습니다. 또한 두 도구가 하나의 디렉터리에 동시에 쓰기 작업을 수행하면 예상치 못한 충돌 파일이 발생할 수 있습니다.