업비트 알림봇 만들기 2편 - Cloudflare 설정

AWS Lambda로 비슷한 거 만들었다가 요금 폭탄 맞고 나서 Cloudflare Workers로 갈아탔어요. 무료 플랜이 진짜 넉넉해서 개인 프로젝트 돌리기 딱 좋더라고요.
1편에서 준비물 다 챙기셨죠? 이번 편에서는 본격적으로 Cloudflare Workers 프로젝트를 만들어볼 거예요. 로컬에서 개발하고 배포하는 것까지 해볼게요.
Cloudflare Workers가 뭔데?
간단히 말하면 서버 없이 코드를 실행하는 거예요. AWS Lambda랑 비슷한데, Cloudflare Workers만의 장점이 있어요:
- Cold Start가 거의 없어요: Lambda는 처음 실행할 때 느린데, Workers는 바로 실행돼요
- 전 세계 엣지에 배포: 200개 이상 도시에서 실행돼서 어디서든 빠름
- 무료 플랜이 넉넉: 하루 10만 요청, 월 1000만 요청까지 무료
개인 프로젝트나 사이드 프로젝트에 딱이에요.
Wrangler CLI 설치
Wrangler는 Cloudflare Workers 개발용 CLI 도구예요. npm으로 설치할게요.
npm install -g wrangler
설치 확인:
wrangler --version
Cloudflare 로그인
Wrangler로 배포하려면 Cloudflare 계정에 로그인해야 해요.
wrangler login
브라우저가 자동으로 열리고 Cloudflare 로그인 화면이 나와요. 로그인하고 “Allow”하면 끝이에요.

프로젝트 생성
이제 프로젝트를 만들어볼게요. 원하는 폴더에서 실행하세요.
npm create cloudflare@latest upbit-telegram-bot
몇 가지 질문이 나와요:
What type of application do you want to create?
> "Hello World" Worker
“Hello World” Worker 선택하세요.
Do you want to use TypeScript?
> No
이번 시리즈는 JavaScript로 할게요. TypeScript 원하시면 Yes 해도 돼요.
Do you want to use git for version control?
> Yes
Do you want to deploy your application?
> No
일단 No로 하고 나중에 직접 배포할게요.
프로젝트 구조 살펴보기
생성된 폴더로 들어가볼게요.
cd upbit-telegram-bot
upbit-telegram-bot/
├── src/
│ └── index.js # 메인 코드
├── wrangler.toml # Workers 설정 파일
├── package.json
└── package-lock.json
기본 코드 살펴보기
src/index.js 파일을 열어보세요:
export default {
async fetch(request, env, ctx) {
return new Response('Hello World!');
},
};
진짜 간단하죠? fetch 함수가 HTTP 요청을 받아서 응답을 반환하는 거예요.
로컬에서 실행해보기
개발 서버를 띄워볼게요:
npm run dev
브라우저에서 http://localhost:8787 열면 “Hello World!”가 보여요.
코드 수정해보기
src/index.js를 이렇게 바꿔볼게요:
export default {
async fetch(request, env, ctx) {
const data = {
message: '업비트 알림봇 API',
status: 'running',
timestamp: new Date().toISOString()
};
return new Response(JSON.stringify(data, null, 2), {
headers: {
'Content-Type': 'application/json',
},
});
},
};
저장하면 자동으로 반영돼요. 브라우저 새로고침하면:
JSON 응답이 잘 나오네요.
실제 배포해보기
로컬에서 잘 되니까 실제로 배포해볼게요:
npm run deploy
끝! 저 URL로 접속하면 진짜 배포된 거 확인할 수 있어요. 전 세계 어디서든 접속 가능해요.
wrangler.toml 설정
wrangler.toml 파일도 잠깐 볼게요:
name = "upbit-telegram-bot"
main = "src/index.js"
compatibility_date = "2024-01-01"
name: 프로젝트 이름 (URL에 들어감)main: 메인 코드 파일 경로compatibility_date: Workers 런타임 버전 날짜
나중에 환경 변수나 스케줄러 설정도 여기서 해요.
정리
이번 편에서 한 것:
- Wrangler CLI 설치
- Cloudflare 로그인
- Workers 프로젝트 생성
- 로컬 개발 서버 실행
- 실제 배포
다음 편에서는 드디어 업비트 API를 연동해서 실시간 코인 가격을 가져온다.
운영자 실전 노트
실제 프로젝트 진행하며 겪은 문제
- Cloudflare Workers 제약사항 → CPU 시간 10ms, 메모리 128MB 제한 존재
- 무료 플랜 한계 → 하루 10만 요청으로 충분하지만 스케줄러 최소 1분 간격
이 경험을 통해 알게 된 점
- Cold Start가 거의 없어 Lambda보다 응답 속도가 빠르다
- wrangler dev로 로컬 테스트가 편리해 개발 생산성이 높다