나는 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

관련 글

더 보기 »

Apex B. OpenClaw, 로컬 임베딩

Local Embeddings for Private Memory Search 기본적으로 OpenClaw의 memory search는 텍스트를 일반적으로 Anthropic 또는 OpenAI와 같은 외부 embedding API에 전송합니다.

Apex 1. OpenClaw, Providers 히스토리

ChatGPT, Anthropic 및 Google Gemini에서 채팅 기록 가져오기 OpenClaw로 할 수 있는 가장 강력한 기능 중 하나는 메모리를 bootstrap 하는 것입니다...