나는 Cloudflare R2와 Turso를 사용해 오픈 소스 “Microsoft Edge Drop” 대체품을 만들었습니다

발행: (2026년 2월 23일 오전 05:58 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

Microsoft Edge Drop 오픈소스 대체품을 Cloudflare R2 + Turso로 구축한 이미지

개요

저는 최근 Cliff Drop이라는 자체 호스팅, 크로스 디바이스 텍스트 및 파일 공유 앱을 Microsoft Edge Drop에서 영감을 받아 만들었습니다. 흥미로운 부분은 UI가 아니라 저장소 아키텍처입니다.

저장소 아키텍처

구조화된 데이터 → Turso (엣지‑호스팅 SQLite)

메시지, 메타데이터, 인증에는 Turso (libSQL) 를 사용했습니다.

왜 Turso인가?

  • 엣지‑호스팅 SQLite
  • 전 세계 저지연 읽기
  • 익숙한 SQL 문법
  • 무거운 데이터베이스 작업이 필요 없음
  • Drizzle ORM과 완벽 호환

SQLite의 단순함에 분산 데이터베이스 특성을 더해 주므로 Postgres 클러스터나 복잡한 복제 설정이 필요 없습니다.

파일 저장소 → Cloudflare R2 (S3‑호환)

파일 업로드와 이미지 저장에는 Cloudflare R2 를 사용했습니다.

왜 R2인가?

  • S3‑호환 API
  • 아웃바운드 비용 0원
  • 대규모 객체 스토리지
  • Node.js와 원활한 통합
  • 로컬 폴백 옵션 제공

이를 통해 다음을 할 수 있습니다.

  • 대용량 파일 업로드 저장
  • 썸네일 생성
  • 전 세계에 파일 제공
  • 예기치 않은 대역폭 비용 방지

벤더 락인 없이 가능합니다.

실시간 및 보안

  • 실시간 동기화를 위한 네이티브 WebSocket
  • Argon2id 비밀번호 해싱
  • HTTP‑only 쿠키
  • CSRF 방어
  • CSP 헤더
  • 안전한 파일 처리

구성 요소

  • SvelteKit (adapter‑node)
  • Tailwind CSS
  • Node.js
  • Drizzle ORM
  • Turso
  • Cloudflare R2

왜 이 아키텍처가 중요한가

Cliff Drop은 구조화된 데이터와 객체 스토리지를 분리하고, 엣지 데이터베이스와 S3‑호환 인프라를 활용하는 클라우드‑네이티브 저장 설계를 보여줍니다. Linux 환경에서 (systemd / PM2 / Nginx) 프로덕션 수준으로 바로 배포할 수 있습니다.

현대 풀스택 엔지니어링은 단순히 React + API가 아니라 각 책임에 맞는 저장 레이어를 선택하는 것입니다:

  • 데이터베이스 → 데이터 무결성
  • 객체 스토리지 → 파일 관리
  • 엣지 → 성능 최적화
  • Node → 제어권 확보

작은 사이드 프로젝트라도 실제 시스템처럼 설계할 수 있습니다. 저장소를 적절히 분리하고, 지연 시간, 확장성, 비용을 고려해 프로젝트 수준을 한 단계 끌어올리세요.

GitHub 저장소:

0 조회
Back to Blog

관련 글

더 보기 »