서론

Cloudflare의 Workers 프로젝트를 로컬에서 구동해보고 확인하는 방법을 알아보겠습니다.

nvm 설치 (nodejs & npm 설치)

cloudflare의 workers를 사용하려면 wrangler라는 clareflare의 cli를 설치해야하는데 이는 nodejs, npm을 필요로 합니다. cloudflare에서는 nvm을 통한 nodejs설치를 안내하고 있습니다. nodejsnpm이 이미 설치되어 있다면 넘어가셔도 됩니다. nvm에 대한 자세한 내용은 https://github.com/nvm-sh/nvm 에서 보실 수 있습니다.

nvm 다운로드 및 설치

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

nvm 설치 결과 확인

=> Appending nvm source string to /home/user/.bashrc
=> Appending bash_completion source string to /home/user/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

# 아래 부분을 ~/.bashrc 또는 ~/.profile 에 붙여넣고
# source ~/.bashrc 또는 source ~/.profile 하여 적용.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

nvm 으로 node 설치

# 최신버전 설치
nvm install node

# 특정버전 설치
# nvm install 14.7.0

# 버전확인
node -v
npm -v

Workers 프로젝트 초기화

cloudflare는 npm으로 Workers 프로젝트를 자동으로 초기화 해주는 명령어를 제공합니다. 아래와 같이 입력하여 프로젝트를 초기화하면 위에서 말씀드린 wrangler자동 설치되어 따로 설치할 필요가 없습니다. your-app-name 부분을 원하는 이름으로 변경해주세요. --부분의 띄어쓰기에 유의해서 입력합니다.

npm create cloudflare -- your-app-name

여기서는 r2-image-worker로 프로젝트명을 입력 했습니다.

npm create cloudflare -- r2-image-worker

그럼 다음과 같이 몇가지를 묻는데

이미지

Workers만 사용하기 위해 Hello World Worker template 를 선택합니다. Durable Objects는 Cloudflare Workers 와 연동되는 서비스 입니다. 궁금하신분은 https://www.cloudflare.com/ko-kr/developer-platform/durable-objects 에서 확인바랍니다. Which template would you like to use?

Cloudflare Workers 는 2024년 10월 5일 현재 4가지 언어를 지원합니다. 원하는 언어를 선택합니다. Rust도 지원하는 것으로 알고 있는데 npm create cloudflare -- your-app-name 에서는 아직 지원하지 않는 것 같습니다. Which language do you want to use?

버전관리로 git을 사용할꺼냐고 묻는데 Yes를 선택하여 초기화합니다. Do you want to use git for version control?

프로젝트 생성과 함께 바로 cloudflare 로 배포를 할꺼냐고 묻는데 여기서는 No를 선택해서 일단 로컬에서 확인 후 배포하기로 합니다. Do you want to deploy your application?

Workers 프로젝트 개발모드 시작

설치가 완료되면 터미널에 아래와 같은 결과가 나오는데 그대로 입력해줍니다. Application created successfully

cd your-app-name
npm run start
# or npm run dev

키보드의 b키를 누르거나 브라우저에서 localhost:8787를 입력합니다. Application created successfully

Workers 프로젝트 브라우저에서 결과 확인

처음 프로젝트를 그대로 실행하면 다음과 같은 결과를 브라우저에서 확인할 수 있습니다. 브라우저 확인

내용을 조금 바꾸어 json으로 응답하게 코드를 약간 수정합니다. Json 응답으로 코드 수정

내용을 바꾸고 저장하면 자동으로 reload 되어 편리합니다. 자동 reload

결과는 다음과 같습니다.

Json 응답으로 코드 수정

(부록) wrangler 설치

위의 npm create cloudflare -- your-app-name으로 Workers 프로젝트를 초기화하면 자동으로 wrangler가 설치됩니다. 혹시 wrangler 설치관련 에러가 나면 아래와 같이 프로젝트 폴더 안에서 다음과 같은 명령어로 설치해주시기 바랍니다. 관련 내용은 https://developers.cloudflare.com/workers/wrangler/install-and-update 에 있습니다.

cd your-app-name
npm install wrangler --save-dev

or # yarn 사용
yarn add --dev wrangler

이후 npm run dev 또는 npm run start 를 하면 됩니다.

결론

Cloudflare 의 Workers 프로젝트를 로컬에서 구동해봤습니다. 이를 위해서 nodejs, npm이 필요하고 wrangler 라는 cloudflare에서 제공하는 cli도 설치해야 합니다. Cloudflare에서는 wrangler버전관리 문제로 global 설치를 권하지 않습니다. Workers 프로젝트 초기화를 위해 npm create cloudflare -- your-app-name로 초기화하는 방법을 제공하는데 이 명령으로 초기화하면 wranglerlocal 그리고 --save-dev로 자동 설치됩니다.

다음 포스팅에서는 cloudflare에 deploy하는 방법을 알아보겠습니다.