1. Cloudflare Workers란?
한 줄 요약
Cloudflare Workers는 여러분의 코드를 서버를 직접 관리하지 않고도 전 세계 Cloudflare 엣지 네트워크(300개 이상의 도시)에서 실행해주는 서버리스 플랫폼입니다.
일반적인 서버는 특정 리전(예: 서울, 도쿄) 한 곳에 있고, 전 세계 사용자가 그 한 곳으로 요청을 보냅니다. 반면 Worker는 사용자와 가장 가까운 엣지 서버에서 실행되기 때문에 지연 시간(latency)이 매우 짧습니다.
왜 Workers를 쓸까?
- 낮은 지연 시간: 요청이 가장 가까운 위치에서 처리됩니다.
- 콜드 스타트가 거의 없음: V8 isolate 기반이라 컨테이너/VM보다 훨씬 빠르게 뜹니다.
- 서버 관리 불필요: 인프라, 스케일링, 패치를 신경 쓸 필요가 없습니다.
- 저렴한 시작 비용: 무료 티어로 하루 10만 요청까지 사용할 수 있습니다.
- 다양한 활용처: API 서버, 리버스 프록시, A/B 테스트, 이미지 리사이징, 인증 처리, 풀스택 앱(SSR) 등
어떻게 동작하나?
Worker 코드는 하나의 진입점을 가집니다: fetch 핸들러입니다.
js
export default { async fetch(request, env, ctx) { return new Response("Hello World!"); }, };
request: 들어온 HTTP 요청 (표준 Fetch API의Request객체)env: 환경 변수, 시크릿, KV/D1 같은 바인딩이 들어 있는 객체ctx:waitUntil()같은 실행 컨텍스트 제어 메서드를 제공
요청이 들어오면 Cloudflare가 이 함수를 실행하고, 반환된 Response를 그대로 사용자에게 돌려줍니다.
Workers vs 전통적인 서버
| 항목 | 전통적인 서버 (예: EC2, VM) | Cloudflare Workers |
|---|---|---|
| 실행 위치 | 특정 리전 1곳 | 전 세계 엣지 (300+ 도시) |
| 콜드 스타트 | 수백ms ~ 수초 (컨테이너 기준) | 수 ms 이하 (V8 isolate) |
| 스케일링 | 직접 설정 필요 | 자동 |
| 과금 방식 | 서버 가동 시간 | 요청 수 / CPU 시간 |
| 런타임 | Node.js, Python 등 자유 | V8 isolate (Web 표준 API 기반) |
참고 자료
다음 장에서는 실습을 위한 개발 환경을 준비합니다.