본문으로 건너뛰기

Cloudflare Workers

  • 2025-08-21 (modified: 2026-05-31)

Cloudflare가 제공하는 serverless 플랫폼.

문제점

  • 한국의 망사용료 문제 때문에 네트워크를 우회하느라 한국에서는 느리다.
  • “Egress 무제한 무료”를 표방하지만 간혹 Enterprise 계약을 강요한다는 얘기가 종종 들린다. R2 등 Cloudflare의 서비스를 이용하지 않고 S3를 이용하면서 egress만 Cloudflare를 쓴다거나 하는 식으로 어뷰징 하는 경우가 문제.
  • 바인딩 개념, DurableObject 등이 Cloudflare 플랫폼 종속적이다.

장점

  • Chrome의 격리 기술을 기반으로 하고 있기 때문에 대단히 가볍고 빠르다.
  • 거의 모든 서비스의 비용이 매우 저렴하다. 특히 egress는 무제한 무료.
  • 사용자별로 독립된 SQLite DB 하나씩을 할당할 수 있다. (DurableObject SQL)
  • 동시편집, 실시간 채팅 등을 아주 쉽게 지원한다. (PartyKit + DurableObject)

장단점 모호

  • Node.js와 완전히 호환되지 않는다. 참고: Node.js compatibility. 그래서 일부 라이브러리는 대안을 찾아야 하는데(예: PDF.js 대신 LiteParse), 이건 단점이면서 장점이기도 하다. 보통 Cloudflare Worker를 지원하는 라이브러리들은 품질이 뛰어나다. 다양한 JS 런타임을 염두에 둔 라이브러리라는 점 자체가 좋은 신호.

메모

오늘(2025-11-12) 재미난 개발 문제를 겪었다. 앞으로 자주 겪을 수 있는 유형의 문제일 것 같아서 기록으로 남김.

현상:

  • 웹브라우저에서 사용자가 요청을 보내면 서버에서 받은 뒤에 OpenAI API를 호출하고 그 결과를 반환하는 일반적인 코드였는데 사용자에 따라 되거나 안되거나 하는 문제가 있었음.
  • 되는 사용자는 계속 되고, 안되는 사용자는 계속 안됨.
  • 캐시를 지우거나 브라우저를 바꿔도 안되는 사용자는 계속 안됨. 사용자의 네트워크를 LG 유플러스(집)에서 KT(스마트폰 테더링)로 바꾸니까 정상 작동.
  • 안되는 사용자의 경우 OpenAI API에서 “Country, region, or territory not supported.”라는 오류가 반환됐음.

추정 원인:

  • OpenAI를 호출하는 서버는 Cloudflare Workers 기반. CF Workers는 사용자의 지리적 위치 또는 현재 사용중인 ISP에 따라 서로 다른 edge network에서 실행됨.
  • 특정 지역에서 LG 유플러스 망을 쓰는 경우에 연결되는 특정한 CF edge network에서 OpenAI API를 호출하면 차단이 되는 것으로 보임.

해결:

  • 어차피 OpenRouter 도입을 고려하고 있었으니 user → cf → openai 대신 user → cf → openrouter → openai 이런 식으로 네트워크를 변경하여 해결.

앞으로 edge network을 좀 더 적극적으로 쓰다보면 종종 만날 것 같은 (내 기준으로는) 새로운 유형의 문제인 것 같다.

External links