15P by GN⁺ 2일전 | ★ favorite | 댓글 2개
  • 파일 저장을 위해 S3 중심의 인프라가 사실상 표준이 되었지만, 개인 프로젝트나 자가 호스팅 환경에서는 WebDAV가 여전히 유용한 대안으로 제시됨
  • 작성자는 S3의 복잡성과 종속성에 피로감을 느끼고, 단순한 인증 기반 파일 저장소로 WebDAV를 다시 활용하기 시작했다고 설명
  • WebDAV는 MacOS Finder, Windows Explorer, rclone, curl 등 다양한 도구에서 기본 지원되어 접근성이 높음
  • Apache, Nginx, Caddy 등 주요 웹서버에서 간단한 설정으로 개인별 비공개 디렉터리를 구성할 수 있으며, LDAP 인증 등과도 연동 가능
  • 클라우드 종속을 벗어나 자체 파일 관리 인프라를 단순하게 유지하려는 개발자에게 WebDAV는 여전히 실용적 선택지임

S3 중심 파일 저장의 문제점

  • FTP는 사라졌고, SFTP는 SSH 및 유닉스 인증에 과도하게 의존하는 구조로 불편함
    • AWS S3가 사실상 업계 표준이 되면서 대부분의 웹앱이 S3 연결을 전제로 설계됨
    • 이는 Amazon에는 유리하지만 다른 사용자에게는 불편을 초래함
  • 개인 프로젝트나 자가 호스팅 환경에서는 S3의 복잡한 기능이 불필요하며, 단순히 인증된 파일 저장소만 있으면 충분함
    • 작성자는 S3 사용을 중단하고 WebDAV로 전환했으며, 다른 개발자들도 같은 선택을 고려하길 권장

WebDAV가 적합한 사용자와 요구사항

  • WebDAV는 파일 시스템 수준의 HTTP 접근이 필요한 개인 사용자나 소규모 프로젝트에 적합
    • 필요 기능: 인증, 파일 쓰기, 효율적 동기화, 기본 비공개 설정, 손쉬운 공개 전환
    • 불필요 기능: 고급 ACL, 서명 URL, 버전 관리, 계층형 스토리지, 수명 주기 규칙, 쿼터 등
  • 이러한 요구는 대부분의 개인 개발자에게 공감되는 부분이며, OpenStack Swift, CEPH, Minio 같은 복잡한 시스템을 운영할 필요가 없음
  • 특히 Minio가 최근 관리 UI를 대폭 제거하고 JSON 정책 파일을 수동 작성하도록 변경하면서, 단순한 파일 저장 목적에는 비효율적임

WebDAV 접근성과 도구 지원

  • WebDAV는 다양한 운영체제와 도구에서 기본 지원
    • MacOS Finder: “서버에 연결” 메뉴에서 https://... 입력
    • Windows Explorer: “네트워크 드라이브 연결” 또는 “웹사이트 연결” 기능
    • CLI 및 앱: rclone, curl, CyberDuck, WinSCP, Filezilla
  • 많은 이들이 WebDAV를 구식으로 여기지만, 실제로는 대부분의 웹서버에서 기본 지원
    • Apache, Nginx, Caddy, Lighttpd, IIS 등에서 손쉽게 활성화 가능
    • OwnCloud, NextCloud 등에서도 WebDAV 기반 접근을 사용

WebDAV의 실제 활용 예시

  • WebDAV는 이미 CardDAV, CalDAV 형태로 연락처 및 캘린더 동기화에 사용되고 있음
    • 즉, 사용자는 자신도 모르게 WebDAV 기반 서비스를 일상적으로 이용 중
  • 작성자는 Apache 기반으로 WebDAV를 구성했으며, LDAP 인증을 연동해 사용자별 개인 디렉터리 접근을 구현
    • Caddy는 사용자별 디렉터리 분리를 더 간단히 설정할 수 있으나, Apache도 충분히 가능
    • Apache 설정은 다소 복잡하지만, 다중 사용자 환경에서 프라이버시를 보장할 수 있음

Apache 기반 WebDAV 설정 예시

  • Apache에서 필요한 모듈: mod_dav, mod_dav_fs, mod_dav_lock
    • 오래된 클라이언트 호환을 위한 BrowserMatch 설정 포함
  • 주요 설정 요소
    • DavLockDB, DavMinTimeout, DavDepthInfinity 등으로 WebDAV 동작 제어
    • AuthType Basic, AuthBasicProvider ldap 등을 통해 LDAP 인증 연동
    • RewriteEngine을 이용해 로그인한 사용자가 자신의 디렉터리만 접근하도록 제한
  • /usr/local/www/webdav 하위에 사용자명과 동일한 디렉터리를 생성하면, 해당 사용자는 인증 후 자신의 공간을 이용 가능

WebDAV 활용 사례와 확장 가능성

  • 작성자는 WebDAV를 다음과 같은 앱과 함께 사용 중
    • Joplin: 자체 서버에 노트를 동기화하는 앱
    • Keepassium: iOS/MacOS용 Keepass 클라이언트
    • VLC, Infuse: 미디어 스트리밍 및 재생
    • rclone: 정적 블로그 게시용 파일 동기화 (NFS/SMB보다 빠르고 VPN 불필요)
  • 또한 Altmount라는 새로운 프로젝트를 발견
    • Usenet에 게시된 콘텐츠를 다운로드 없이 “마운트”해 직접 접근 가능
    • Usenet에 쉽게 멀티 기가비트로 액세스할 수 있다는 점이 흥미로움

집 인프라 내부에서나 nfs 혹은 smb 쓰고 외부는 webDav 잘 쓰고있습니다 하핫

Hacker News 의견
  • 나는 rclone의 WebDAV 클라이언트와 서버를 모두 작성했음
    이를 통해 WebDAV 서버 간 동기화나 마운트가 가능하고, 로컬 파일시스템이나 S3, Google Drive 등을 WebDAV 서버로 노출할 수도 있음
    RFC는 FTP보다 낫지만 여전히 구현 간 차이로 인한 비표준 동작이 많아 여러 우회가 필요함
    수정 시간이나 해시 설정이 기본적으로 불가능하지만 ownCloud, Nextcloud 같은 구현체는 이를 지원함
    HTTP와 TLS 기반이라 SFTP보다 훨씬 빠름
    • NFS와 비교하면 어떨지 궁금함
      NFS도 TCP 기반에 암호화가 가능하지만, Windows는 지원이 약하고 macOS만 기본 지원함
      반면 WebDAV는 두 플랫폼 모두에서 잘 동작함
  • Android에 WebDAV 마운트가 기본 지원되면 좋겠음
    지금은 davx5를 쓰지만 파일 접근이 불편함
    이미 구축해둔 mTLS 인프라와 잘 맞아서 WebDAV를 선호함
    서버 쪽은 sftpgo를 사용 중임
  • “I hate S3”라는 제목이었지만, S3는 적절한 곳에서 쓰면 괜찮음
    Amazon만의 기술이 아니라, Garage S3 같은 EU Horizon 지원의 오픈소스 프로젝트도 있음
    https://garagehq.deuxfleurs.fr/
    • “AWS S3 SDK가 사실상 웹 프로토콜 표준이 되어버린 게 싫다”는 글도 써보고 싶음
  • 사실 이미 WebDAV를 쓰고 있을지도 모름
    예를 들어 Tailscale Drive Share는 WebDAV 기반이고, Fastmail의 파일 저장소도 WebDAV로 접근 가능함
    WebDAV는 꽤 멋진 기술임
    • 나는 CopyParty 인스턴스를 마운트할 때 항상 WebDAV를 씀
      아주 잘 작동함
  • 9p 프로토콜이 더 널리 쓰였으면 좋겠음
    Windows와 macOS 모두 내장 지원하지만, 일반 사용자는 접근할 수 없음
    Windows는 WSL 전용, macOS는 가상화 전용이라 아쉬움
    UI에서 바로 9p를 마운트할 수 있으면 훌륭할 것 같음
  • WebDAV가 아직 살아있다고 믿기에, 최근 nginx용 WebDAV 모듈을 WIP로 공개했음
    NextCloud 클라이언트(데스크톱/Android)와 호환되고, Gnome Online Accounts나 Nautilus에서도 사용 가능함
    https://codeberg.org/lunae/dav-next
    아직 패키징이나 바이너리 릴리스는 없지만 피드백 환영임
  • WebDAV는 단순하고 구현이 쉬워서 지속성 있는 기술이라 생각함
    우리 회사의 클라우드 플랫폼에서도 WebDAV를 통해 드라이브처럼 접근할 수 있게 기능을 개발 중임
    HTTP 기반 인프라를 그대로 활용할 수 있어서 추가 복잡도가 거의 없음
    • 완전히 동의함
      지루하지만 안정적인 기술이 결국 오래감
      게다가 개방형 표준임
  • “FTP는 죽었다”는 말에 공감하지 않음
    여전히 많은 공유 호스팅이 FTP 업로드를 안내함
    SSH 키나 SFTP도 가능하지만, 문서에는 여전히 FileZilla 같은 FTP 도구가 언급됨
    OVHcloud의 FTP 가이드
    • 나는 순수 FTP를 15년은 안 쓴 것 같음
      아직도 암호화 안 된 프로토콜을 쓰는 건 믿기 어려움
      저런 호스팅은 바로 제외할 듯함
    • 공유 호스팅이 서서히 사라지면서 FTP도 같이 쇠퇴 중
      과거 소프트웨어 배포나 학계에서 쓰이던 시절이 그립지만, 이제는 거의 마지막 용도만 남았음
  • Sabre로 간단한 WebDAV 서버를 만들어 Devonthink 데이터베이스를 동기화함
    여러 iCloud 계정 사용자 간 동기화가 가능하고, Dropbox 구독도 필요 없음
    CloudKit보다 빠르고 유지보수 부담도 적음
    앞으로도 오랫동안 쓸 수 있을 것 같음
    • iOS용 Devonthink WebDAV 동기화는 빠르고 안정적이며 비구독형
      웹 스크레이퍼도 포함되어 있어 LLM 챗봇의 마크다운 저장용으로 좋음
  • 작성자가 S3 API와 S3 자체를 혼동한 듯함
    요즘은 대부분의 벤더가 S3 API 호환성을 제공함
    • 글 후반에 S3 호환 서버를 언급하긴 함
      결국 프로토콜 자체에 대한 이야기로 보임