4. 로컬에서 개발하고 테스트하기
Cloudflare Workers는 배포 전에 완전히 로컬에서 실행하고 테스트할 수 있습니다. 실제 엣지와 거의 동일한 런타임(Workers Runtime, workerd)을 로컬에서 그대로 재현하기 때문에 배포 후 동작 차이가 거의 없습니다.
4.1 로컬 개발 서버 실행
이 강의의 샘플 프로젝트로 실습해봅시다.
bash
cd cloudflare-workers-course/sample-worker npm install npm run dev
npm run dev는 내부적으로 wrangler dev를 실행합니다. 성공하면 다음과 같은 로그가 보입니다.
text
⛅️ wrangler 4.x.x
────────────────────
Your Worker has access to the following bindings:
Binding Resource Mode
env.VISITS_KV (REPLACE_WITH_YOUR_KV_NAMESPACE_ID) KV Namespace local
env.GREETING ("Hello") Environment Variable local
⎔ Starting local server...
[wrangler:info] Ready on http://localhost:8787
4.2 브라우저 / curl로 테스트하기
브라우저에서 http://localhost:8787에 접속하면 아래처럼 간단한 홈페이지가 나옵니다.
text
GET / -> 홈페이지 (HTML)
GET /api/hello -> {"message":"Hello, Cloudflare Workers!","timestamp":"..."}
GET /api/visits -> {"visits":1} (호출할 때마다 1씩 증가, KV에 저장)
터미널에서 curl로도 확인할 수 있습니다.
bash
curl http://localhost:8787/api/hello curl http://localhost:8787/api/visits curl http://localhost:8787/api/visits # 다시 호출하면 visits가 2로 증가
4.3 자동 리로드
wrangler dev가 실행 중인 상태에서 src/index.js를 수정하고 저장하면, 서버가 자동으로 변경 사항을 감지해서 다시 로드합니다. 브라우저를 새로고침만 하면 바로 반영된 결과를 볼 수 있습니다.
4.4 로컬 vs 원격(remote) 모드
기본적으로 wrangler dev는 로컬 모드로 동작합니다. KV, 환경 변수 등이 모두 로컬 시뮬레이션으로 처리되어 실제 Cloudflare 리소스를 건드리지 않습니다.
실제 Cloudflare 엣지에 연결해서 테스트하고 싶다면 --remote 플래그를 사용합니다.
bash
npx wrangler dev --remote
실습을 진행할 때는 대부분 로컬 모드로 충분합니다. 로그인이나 실제 리소스 생성 없이도 대부분의 기능을 확인할 수 있습니다.