~/VibeHandbook
$39

Cloudflare

developers.cloudflare.com

Workers KV

무엇인가

Workers KV는 읽기에 최적화되어 설계된 글로벌 키-값 저장소다. 값을 한 번 쓰면 Cloudflare가 네트워크 전반에 복제하여, 어디에 있는 어떤 Worker든 매우 낮은 지연으로 읽을 수 있다. 최종 일관성(eventually consistent)을 따른다: 쓰기는 짧은 시간 안에 모든 곳에서 보이게 되는데, 이는 빠르고 글로벌한 대가로 받아들이는 트레이드오프다.

강점

  • 엣지의 어디서나 매우 빠른 저지연 읽기.
  • 자동으로 전 세계에 복제됨 — 관리할 리전이 없다.
  • 간단한 API: get, put, delete, list, 그리고 선택적 TTL.
  • 읽기가 많은 워크로드에는 대규모에서도 저렴하며, 쓸 만한 무료 티어가 있다.
  • Workers 및 Pages Functions에 바로 바인딩된다.

트레이드오프

  • 최종 일관성 — 쓰기 직후 즉시 정확해야 하는 데이터에는 적합하지 않다.
  • 쓰기는 읽기에 비해 느리고 레이트 리밋이 있다.
  • 값 크기에 상한(약 25MB)이 있다. R2 같은 대용량 스토리지가 아니다.
  • 질의나 관계가 없다 — 엄격히 키 대 값일 뿐이다.

언제 쓰나

설정, 기능 플래그, 캐시된 API 응답, 라우팅 테이블, 세션 조회, 그리고 몇 초 정도 오래된 상태를 허용할 수 있는 읽기 위주의 데이터에 KV를 써라.

바이브 코딩 적합성

KV는 에이전트가 Worker에 캐싱이나 설정을 추가할 때 쉽게 따낼 수 있는 한 수다: 바인딩 하나, 그다음 get/put. 최종 일관성이라는 점을 명시해, 쓰기 직후 읽기 보장이 필요한 곳에 에이전트가 KV를 가져다 쓰지 않도록 하라 — 그런 경우엔 D1이나 Durable Object를 가리켜라. 아래 스니펫은 네임스페이스를 바인딩하고 값 하나를 심는다.

# wrangler.toml
[[kv_namespaces]]
binding = "CONFIG"
id = "your-kv-namespace-id"
npx wrangler kv namespace create CONFIG
npx wrangler kv key put --binding=CONFIG "theme" "dark"