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

셀프 호스팅 Dropbox 대안 4종 비교 및 추천

Nextcloud, Seafile, Syncthing 및 오브젝트 스토리지를 비교합니다. 동기화 토폴로지의 차이점과 소규모 VPS 운영 시 발생하는 실제 비용을 분석하며, 동기화가 백업을 대체할 수 없는 이유를 명확히 설명합니다.

어떤 셀프 호스팅 Dropbox 대안을 운영해야 할까요?

가치 있는 셀프 호스팅 Dropbox 대안은 Nextcloud, Seafile, Syncthing, 그리고 클라이언트를 얹은 오브젝트 스토리지까지 총 4가지입니다. 이들은 서로 대체할 수 없습니다. Nextcloud는 다른 사람에게 파일을 공유해야 하는 가정이나 소규모 팀에 적합합니다. Seafile은 디스크상의 데이터 형태보다 동기화 속도가 중요한, 아주 많은 수의 작은 파일을 동기화하는 개인이나 팀에 적합합니다. Syncthing은 외부 공유가 필요 없는 개인 기기 간 동기화에 적합합니다. 오브젝트 스토리지는 거의 열어보지 않는 저렴한 아카이브 데이터 보관에 적합합니다.

기능을 비교하기 전에 동기화 방식부터 선택하십시오. 기능 목록은 모두 비슷해 보입니다. 토폴로지, 즉 모든 기기가 동의하는 복사본을 어떤 머신이 보유하느냐가 6개월 뒤에도 만족하며 사용할 수 있을지를 결정합니다.

동기화 토폴로지: 중앙 서버 방식 또는 서버 없는 피어 방식

두 가지 설계안이 있으며, 이후 이어지는 내용은 어떤 방식을 선택하느냐에 따라 달라집니다.

중앙 서버 방식. Nextcloud, Seafile, 객체 스토리지 모두 이 방식으로 작동합니다. 일반적으로 VPS(virtual private server)인 한 대의 장비가 권한 있는 복사본을 보유합니다. 모든 기기는 해당 장비와 통신합니다. 노트북을 한 달 동안 꺼두었다가 다시 켜도 스스로 최신 상태를 유지할 수 있습니다. 6 GB의 여유 공간이 있는 휴대폰은 전체 데이터의 일부만 보유하고, 서버는 모든 데이터를 보관합니다. 브라우저로 파일에 접근할 수 있으며, 이것이 공유 링크가 존재할 수 있는 이유입니다.

서버 없는 피어 방식. Syncthing이 이 방식으로 작동합니다. 기기들이 서로를 찾아 암호화된 연결을 통해 파일 목록을 직접 교환합니다. 권한 있는 복사본은 존재하지 않으며, 파일은 해당 파일을 보유한 기기에만 존재합니다. 변경 사항이 전달되려면 두 기기가 동시에 온라인 상태여야 합니다. 페이지를 서비스하는 장비가 없으므로 누구에게나 줄 수 있는 URL도 없습니다.

이로 인해 네 가지 결과가 발생하며, 이는 사용자가 나중에 직면하게 되는 문제들입니다.

  • 소프트웨어를 설치하지 않는 사람에게 파일을 보내려면 중앙 서버가 필요합니다. 링크는 URL이며, URL은 포트에서 대기 중인 프로세스가 필요하기 때문입니다.
  • 회사 노트북과 같이 직접 제어할 수 없는 기기에서 파일에 접근하려면 중앙 서버가 필요합니다.
  • 몇 주 동안 꺼져 있던 기기는 서버가 켜져 있을 때 언제든 최신 상태를 동기화할 수 있습니다. 피어 방식에서는 데이터를 보유한 다른 기기도 온라인 상태일 때만 동기화가 가능합니다. 이것이 많은 Syncthing 사용자가 항상 켜져 있는 피어로서 VPS에서 인스턴스를 하나 운영하는 이유입니다.
  • 스토리지 사용 방식이 다릅니다. 중앙 서버 방식은 전체 복사본 하나와 각 기기가 로컬에 보관하는 데이터를 합쳐서 저장합니다. 하나의 폴더를 공유하는 네 개의 피어는 모든 피어가 전체 폴더를 보관하므로 총 네 개의 전체 복사본을 유지하게 됩니다.

Nextcloud: 사용자, 그룹 및 공개 링크

Nextcloud는 PHP 웹 애플리케이션입니다. 이 애플리케이션은 파일을 데이터 디렉터리에 일반 파일 형태로 저장하고 데이터베이스에서 이를 추적합니다. 폴더를 특정 사용자나 그룹과 공유할 수 있으며, 비밀번호와 만료 기한을 설정하여 공개 링크로 공유할 수도 있습니다. 버전 기록은 기본적으로 활성화되어 있으며, 삭제된 파일은 먼저 휴지통으로 이동합니다. 데스크톱 클라이언트는 Linux, macOS, Windows를 지원하며, iOS 및 Android용 공식 앱도 제공됩니다. 다른 사람에게 파일을 전달해야 하는 문제로 Dropbox를 떠나려 한다면, 이 솔루션이 적절한 대안이 될 것입니다.

이러한 기능의 대가는 복잡한 구성 요소입니다. 일반적인 설치 환경에서는 웹 서버, PHP-FPM(PHP 프로세스 관리자), MariaDB나 PostgreSQL 같은 데이터베이스, 그리고 파일 잠금을 위한 Redis가 실행됩니다. 5분마다 cron이나 systemd 타이머를 통해 백그라운드 작업이 실행됩니다. 1 GB RAM을 가진 VPS에서도 실행은 가능하지만, 대용량 업로드가 발생하거나 긴 occ 유지보수 명령이 실행되면 OOM(Out-of-Memory) 킬러에 의해 프로세스가 종료될 수 있습니다. 소수의 사용자가 사용할 경우 2 GB를 최소 사양으로 고려해야 하며, 더 많은 앱을 활성화할 계획이라면 4 GB를 권장합니다. 또 다른 대가는 업그레이드입니다. 앱 스토어의 앱들은 특정 코어 릴리스에 맞춰 제작되므로, 메이저 버전 업그레이드를 진행하기 전에 사용하는 앱들이 다음 버전을 지원하는지 반드시 확인해야 합니다.

Nextcloud는 한 계정에 수십만 개의 작은 파일이 저장될 경우 속도가 저하됩니다. 각 파일은 파일 캐시 테이블의 행 하나를 차지함과 동시에 디스크상의 실제 파일로 존재하며, 데스크톱 클라이언트가 이를 하나씩 확인하기 때문입니다. 가정용 규모에서는 문제가 되지 않습니다. 사이징, TLS(전송 계층 보안) 및 백업에 관한 내용은 TLS와 백업을 포함한 Docker 기반 Nextcloud 설치에서 다루고 있으니, 도입을 결정했다면 해당 문서를 참조하십시오.

범위에 관한 주의 사항이 하나 있습니다. Nextcloud는 캘린더, 연락처, 메모, 사진 라이브러리 기능도 제공하지만, 앱을 활성화할 때마다 백그라운드 작업이 늘어나고 업그레이드를 방해할 요소가 하나씩 추가됩니다. 사진 관리가 주된 목적이라면 전용 도구를 사용하는 것이 더 효율적입니다. 자체 호스팅 Google Photos 대체재인 Immich를 확인해 보십시오. 문서나 위키 관리가 목적이라면 파일 서버에 앱을 계속 추가하기보다 자체 호스팅 Notion 대체재를 살펴보는 것이 좋습니다.

Seafile: 매우 많은 수의 작은 파일을 위해 설계됨

Seafile은 모든 파일을 블록 단위로 분할하여 콘텐츠 해시로 주소를 지정하는 내부 객체 저장소에 저장합니다. 이는 git이 객체를 관리하는 방식과 동일합니다. 동기화와 공유의 단위는 폴더 트리가 아닌 라이브러리입니다. 클라이언트는 파일당 하나의 요청을 보내는 대신 블록과 하나의 커밋을 업로드하므로, 100,000개의 작은 파일이 포함된 디렉터리를 동기화할 때 파일 단위 프로토콜보다 훨씬 빠르게 완료됩니다. 동일한 블록은 한 번만 저장되므로, 대용량 파일의 복사본을 추가해도 저장 공간은 거의 늘어나지 않습니다.

이 방식의 대가는 서버에 저장된 파일이 더 이상 일반적인 파일 형태가 아니라는 점입니다. 저장소 디렉터리를 열어보면 16진수 이름의 객체 파일들만 보입니다. 데이터를 추출하려면 Seafile 클라이언트나 Seafile 자체의 내보내기 및 fsck 도구를 사용해야 합니다. 객체들도 일반 파일이므로 백업은 정상적으로 작동하지만, cp를 사용하여 특정 스프레드시트 하나만 복원하는 것은 불가능합니다. 나중에 후회하는 경우가 많으므로 이 방식이 허용 가능한지 지금 결정하십시오.

Seafile은 커뮤니티 에디션과 유료 프로페셔널 에디션을 제공하며, 두 버전 간의 기능 차이는 릴리스마다 변경됩니다. 따라서 특정 기능을 중심으로 팀 운영 계획을 세우기 전에 공식 사이트에서 현재 약관을 확인하십시오. 공식 데스크톱 및 모바일 클라이언트가 제공됩니다. 암호화된 라이브러리는 클라이언트 측에서 암호화되므로, 서버는 읽을 수 없는 암호문 상태로 데이터를 저장합니다. 암호를 분실하면 본인을 포함한 누구도 라이브러리를 읽을 수 없습니다. 브라우저에서 암호화된 라이브러리를 열려면 웹 세션에 암호를 입력해야 하므로, 해당 보안 보장의 강력한 버전은 데스크톱 및 모바일 클라이언트에서만 유효합니다.

리소스 비용은 Nextcloud와 비슷합니다. 데이터베이스, 메모리 캐시, 두 개의 애플리케이션 프로세스를 실행해야 하므로 2 GB를 최소 사양으로 권장합니다.

Syncthing: 로그인할 대상이 없음

Syncthing은 단일 Go 바이너리로 구성됩니다. 이 프로그램은 폴더를 감시하고, 디스커버리 서버나 릴레이를 통해 피어를 찾으며, 장치 간에 직접 데이터를 동기화합니다. 동기화하는 상대방을 위한 계정이나 로그인 페이지는 존재하지 않습니다. 두 장치를 ID로 연결하고 각 측에서 폴더를 수락하면 동기화가 시작됩니다. 실행할 요소가 거의 없기 때문에 이 문서에서 다루는 도구 중 운영 부담이 가장 적습니다.

대신 포기해야 할 부분은 공유 기능 전체입니다. 해당 항목은 Device pairing only, no links로 표시됩니다. 클라이언트, 회계사, 친척에게 링크를 전달하여 파일을 공유할 수 없습니다. 또 다른 공백은 모바일 지원입니다. Android app, no official iOS 항목을 참고하십시오. 프로젝트 공식 FAQ는 이에 대해 명확히 밝히고 있습니다. "현재 Syncthing 팀은 가까운 미래에 iOS를 공식 지원할 계획이 없습니다." 이는 iOS가 백그라운드 프로세싱을 엄격히 제한하여 안정적인 동기화를 구현하기 어렵기 때문입니다. iOS 사용자는 타사 앱을 사용해야 합니다.

자원 사용량은 적지만 한 가지 알아둘 점이 있습니다. Syncthing은 동기화하는 모든 파일에 대해 인덱스 항목을 유지하므로, 메모리 사용량과 초기 스캔 시간은 전체 용량이 아닌 파일 개수에 비례하여 증가합니다. 대용량 폴더를 처음 해싱할 때는 CPU를 잠시 점유하지만, 이후에는 안정화됩니다. 가장 낮은 사양의 VPS 플랜에서도 원활하게 동작합니다.

충돌은 양쪽 파일을 모두 보존하는 방식으로 처리합니다. 두 장치가 서로 연결되지 않은 상태에서 동일한 파일을 수정하면, Syncthing은 한쪽 사본의 이름을 변경하여 원본 옆에 보관하므로 notes.sync-conflict-20260802-141530-K7MB3QT.md와 같은 이름의 파일을 발견하게 됩니다. 데이터는 손실되지 않습니다. 자동으로 병합되지 않으므로 사용자가 직접 해결해야 합니다.

객체 스토리지와 클라이언트: 동기화 폴더가 아닌 저렴한 바이트 저장소

객체 스토리지는 MinIO로 직접 호스팅하거나 제공업체에서 임대하는 S3(Simple Storage Service) 호환 버킷을 의미합니다. 명령줄 도구인 rclone이나 버킷을 드라이브로 표시해 주는 데스크톱 클라이언트를 사용하여 접근합니다. 공유는 미리 서명된 URL(presigned URL)을 통해 이루어지며, 이는 만료 시간이 포함된 링크를 직접 생성하는 방식입니다. 버전 관리는 버킷 설정 항목입니다: Bucket versioning, off by default. 이 기능은 이전에 업로드한 객체에는 적용되지 않으므로 버킷을 생성할 때 활성화해야 합니다.

버킷을 동기화 폴더처럼 취급하면 문제가 발생합니다. 기본적으로는 Documents 디렉터리를 감시하는 프로세스가 없기 때문입니다. rclone bisync는 양방향 동기화를 수행하며, rclone 공식 문서에서도 이에 대한 주의 사항을 명확히 안내하고 있습니다. 객체 스토리지가 가장 잘하는 역할은 백업 대상이나 애플리케이션의 배후 저장소 계층과 같이 기반이 되는 것입니다. MinIO를 이용한 자체 호스팅 S3 호환 객체 스토리지에서 서버 측 설정을 다룹니다.

여기서 발생하는 리소스 비용은 일반적인 경우와 다릅니다. MinIO는 단일 바이너리로 실행되며 유휴 상태일 때 리소스를 거의 점유하지 않습니다. 실제로 지불하는 비용은 디스크 비용이며, VPS 환경에서는 기가바이트 단위로 임대하는 블록 볼륨 비용과 객체를 전송할 때 발생하는 대역폭 비용이 포함됩니다. 이 비용들은 free -h에 나타나지 않으므로, 아카이브 크기를 결정하기 전에 VPS의 실제 월간 운영 비용을 먼저 확인하십시오.

공유, 모바일 클라이언트 및 버전 관리 비교

ChartSharing, mobile clients and versioning, by tool
The data behind this chart
[
  {
    "tool": "Nextcloud",
    "sharing": "Public links, users and groups",
    "mobile": "Official iOS and Android apps",
    "versioning": "On by default, plus trash"
  },
  {
    "tool": "Seafile",
    "sharing": "Public links with password and expiry",
    "mobile": "Official iOS and Android apps",
    "versioning": "Library history and snapshots"
  },
  {
    "tool": "Syncthing",
    "sharing": "Device pairing only, no links",
    "mobile": "Android app, no official iOS",
    "versioning": "Optional per folder, off by default"
  },
  {
    "tool": "Object storage",
    "sharing": "Presigned URLs you generate",
    "mobile": "Third party clients only",
    "versioning": "Bucket versioning, off by default"
  }
]

모든 4 옵션이 한 줄로 나뉩니다. 이 중 3개는 브라우저만 가진 외부 사용자에게 파일을 전달할 수 있습니다. 나머지 1개는 사용자가 소유한 기기 간에만 통신합니다. Seafile의 버전 관리 항목인 Library history and snapshots은 주의가 필요합니다. 기록은 라이브러리 단위로 유지되므로, 라이브러리를 삭제하면 해당 기록도 함께 삭제됩니다.

데이터 반출 방법

데이터 반출 비용은 지금 확인하면 저렴하지만 나중에 발견하면 비쌉니다. 따라서 도입하기 전에 미리 확인해야 합니다.

Nextcloud는 실제 파일을 실제 디렉터리에 저장합니다. 따라서 애플리케이션이 다시 시작되지 않더라도 tar를 통해 문서에 접근할 수 있습니다. Syncthing도 모든 피어에서 동일한 방식을 사용하며, 이는 가장 강력한 반출 전략이 됩니다. 파일이 각 장치에 그대로 저장되어 있기 때문입니다. Seafile의 객체 저장소는 블록을 파일로 재조합하기 위해 Seafile 자체나 전용 내보내기 도구가 필요합니다. 객체 저장소는 rclone이나 이와 유사한 도구를 사용해야 하며, 명령어 한 줄로 해결할 수 있습니다.

동기화는 백업이 아니며, 그 간극에서 데이터 손실이 발생합니다

여기에 소개된 모든 도구는 기기 간의 변경 사항을 복사합니다. 삭제 또한 변경 사항의 일종입니다. 노트북에서 폴더를 삭제하면 클라이언트는 서버에 이를 알리고, 서버는 이를 적용하며, 다른 모든 기기에서도 해당 폴더가 삭제됩니다. 랜섬웨어 역시 동일한 경로를 이용합니다. 로컬 파일을 암호화하면 클라이언트는 수정된 파일을 감지하고 암호화된 버전을 업로드합니다. 동기화는 정상적으로 작동했지만, 데이터는 사라진 상태가 됩니다.

휴지통과 버전 기록은 이러한 위험을 완화해 줍니다. 하지만 이들 역시 보관 기간이 만료될 수 있고, 실수를 저지른 동일한 계정에 의해 비워질 수 있으며, 라이브 데이터와 동일한 디스크에 저장됩니다. 볼륨 장애가 발생하면 파일과 그 기록이 모두 함께 사라집니다.

백업이란 별도의 하드웨어에 보관되는 분리된 사본이며, 정해진 일정에 따라 수행되고, 최소 한 번 이상 복구 테스트를 거친 것을 의미합니다. 파일과 함께 데이터베이스도 동일한 주기에 백업하십시오. 데이터베이스 없이 Nextcloud 데이터 디렉터리만 복구하면 인스턴스는 해당 파일의 존재를 인식하지 못합니다. 이후 occ files:scan를 수행하여 파일을 복구하더라도, 해당 테이블에 저장되어 있던 공유 정보와 버전 기록은 모두 손실됩니다. VPS에서 예약된 restic 백업에서는

제가 선택하는 기준

대부분의 독자에게는 Nextcloud를 권장합니다. Dropbox를 떠난 사용자들이 가장 아쉬워하는 기능은 아무것도 설치하지 않은 상대방에게 링크를 공유하는 것과, 스마트폰에서 파일을 여는 것입니다. Nextcloud는 공식 클라이언트를 통해 이 두 가지를 모두 지원하며 유료 등급이 없습니다. 2 GB의 RAM은 이 기능을 위해 지불할 만한 합리적인 비용입니다. 제가 고수하는 두 가지 예외 상황이 있습니다. 만약 해당 폴더를 오직 본인만 사용하고 본인 소유의 하드웨어에서만 관리한다면, Syncthing을 사용하십시오. 서버를 패치하거나 웹 로그인을 방어할 필요가 없어 편리합니다. 만약 수십만 개의 파일이 포함된 작업 디렉터리를 동기화해야 한다면, Seafile을 사용하십시오. 데이터 저장 방식이 불투명하다는 단점이 있지만, 그 대가로 빠른 속도를 얻을 수 있습니다. 어떤 도구를 선택하든 객체 스토리지는 동기화 도구의 앞단이 아닌, 백업 대상으로서 그 아래에 배치해야 합니다.

FAQ

Syncthing은 제 노트북의 백업 도구인가요?

아니요. Syncthing은 기기 간의 변경 사항을 동기화하는 도구이며, 삭제 또한 변경 사항의 일종입니다. 따라서 실수로 파일을 삭제하면 몇 초 안에 연결된 모든 기기에서 해당 파일이 사라집니다. 폴더별 파일 버전 관리 기능을 사용하면 도움이 되지만, 각 폴더에서 직접 활성화하기 전까지는 꺼져 있습니다. 별도의 하드웨어에 정기적으로 백업을 수행하고, 복구 과정이 정상적으로 작동하는지 미리 한 번 확인해 두십시오.

동일한 VPS에서 Nextcloud와 Syncthing을 함께 실행할 수 있나요?

네, 두 서비스는 서로 다른 포트를 사용하므로 충돌하지 않습니다. Syncthing 폴더를 Nextcloud의 데이터 디렉터리로 지정하지 마십시오. Nextcloud는 데이터베이스를 통해 모든 파일을 추적합니다. 따라서 데이터베이스를 거치지 않고 디스크에 직접 파일을 추가하면 occ files:scan을 실행하기 전까지는 파일이 보이지 않으며, 반대로 파일을 삭제하면 데이터베이스에는 존재하지 않는 경로에 대한 레코드가 남게 됩니다. Syncthing 전용 디렉터리를 사용하거나, 해당 디렉터리를 Nextcloud의 외부 저장소로 연결하여 Nextcloud가 이를 인식하도록 설정하십시오.

계정이 없는 사람과 링크를 공유하려면 무엇을 사용해야 하나요?

Nextcloud와 Seafile 모두 비밀번호와 만료 기한을 설정할 수 있는 공개 링크 생성 기능을 제공합니다. 객체 스토리지(Object storage)는 설정한 시간이 지나면 자동으로 작동이 중단되는 사전 서명된 URL(presigned URL)을 제공합니다. Syncthing은 이 기능을 지원하지 않습니다. Syncthing의 공유 모델은 기기 간 연결 방식이므로, 상대방도 Syncthing을 설치하고 기기 ID를 전달한 뒤 폴더를 수락해야 합니다.

서버에는 어느 정도의 디스크 용량이 필요한가요?

데이터를 보관하는 서버라면 공유 데이터 전체 크기에 버전 기록과 휴지통 공간, 그리고 업로드 중인 파일을 위한 여유 공간을 더해 계획해야 합니다. 버전 기록은 많은 사용자가 간과하는 부분입니다. 매일 변경되는 2 GB 파일의 모든 버전을 보관하면 용량이 빠르게 증가하므로, 초기에 보관 정책을 설정하십시오. 데이터를 별도의 볼륨에 저장하면 디스크 공간이 가득 찼을 때 특정 업로드가 실패하는 수준에서 그치지 않고 서버 전체가 멈추는 현상을 방지할 수 있습니다.

#self-hosting#file-sync#nextcloud#syncthing#storage