GodLights Study

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

실습을 진행할 때는 대부분 로컬 모드로 충분합니다. 로그인이나 실제 리소스 생성 없이도 대부분의 기능을 확인할 수 있습니다.

참고 자료

➡️ 다음: 라우팅과 요청/응답 다루기 ⬅️ 이전: 첫 Worker 만들기