무료 서버 프로브 시스템이 필요한 이유
3대 이상의 VPS를 서로 다른 데이터센터와 지역에 분산시켜 가지고 있다면, 다음과 같은 상황을 경험한 적이 있을 것입니다: 어떤 서버가 갑자기 다운되었고, 고객이 불평을 하거나 서비스가 몇 시간 동안 오프라인 상태가 된 것을 발견할 때까지 전혀 알지 못합니다.
전통적인 해결책은 제한적입니다: UptimeRobot과 같은 상용 모니터링 서비스에 돈을 지불하거나, 직접 Prometheus + Grafana를 구축하는 것입니다 — 전자는 기능이 제한되고, 후자는 추가적인 모니터링 서버를 유지보수해야 합니다. 개인 개발자와 소규모 팀에게 이러한 해결책은 충분히 우아하지 않습니다.
CF-Server-Monitor는 더 스마트한 선택지를 제공합니다: Cloudflare의 무료 할당량으로 완전히 실행되는 멀티 서버 모니터링 시스템. 자체 서버가 필요 없고, 유료 구독도 필요 없으며, 대시보드, API, 데이터베이스, 실시간 푸시가 모두 Cloudflare의 엣지 네트워크에서 실행됩니다. 현재 이 프로젝트는 GitHub에서 1,500개 이상의 스타를 받았으며, 많은 VPS 애호가와 소규모 팀에 의해 채택되고 있습니다.
프로젝트 개요: CF-Server-Monitor란 무엇인가
CF-Server-Monitor는 Cloudflare Workers에 배포되는 경량 멀티 서버 모니터링 대시보드로, 핵심 기술 스택은 다음과 같습니다:
- Cloudflare Workers: API 요청과 에이전트 보고를 처리하는 엣지 컴퓨팅 함수
- Cloudflare D1: 모니터링 데이터를 영구적으로 저장하는 엣지 SQLite 데이터베이스
- Durable Objects: WebSocket을 통해 프론트엔드에 실시간 푸시를 수행하는 상태 저장 객체
- Vue.js 프론트엔드: 반응형 모니터링 대시보드와 관리 백엔드
- Go 에이전트: 모니터링 대상 서버에 설치되는 경량 프로브
설계 철학은 매우 간단합니다: 에이전트가 Worker에 메트릭스를 일방적으로 보고하고, Worker가 D1에 쓰고 프론트엔드로 브로드캐스트합니다. WebSSH도 없고, 원격 명령 실행도 없으며, 마스터 채널도 없습니다 — 이로 인해 전통적인 프로브보다 더 안전합니다.
핵심 기능 개요
| 기능 모듈 | 구체적인 기능 |
|---|---|
| 실시간 모니터링 | CPU, GPU, 메모리, 스왑, 디스크, 디스크 IO, 네트워크 트래픽, 연결 수, 프로세스 수, 부하, 가동 시간 |
| 히스토리 데이터 | 7일 히스토리 차트, 장기간 샘플링, 실시간 네트워크 속도, 월간 트래픽 통계 및 보정 |
| 네트워크 품질 | 중국 텔레콤/联通/모바일/BGP 노드 지연 및 패킷 손실률 추적 |
| 멀티 뷰 대시보드 | 막대 그래프, 링 차트, 테이블, 맵 뷰, 데스크톱 및 모바일 적응 |
| 관리 백엔드 | 서버 추가/삭제/편집, 드래그 앤 드롭 정렬, 서버 숨기기, 가져오기/내보내기, 일괄 작업 |
| 크로스 플랫폼 에이전트 | Linux, Alpine, OpenWrt, Synology DSM, fnOS, FreeBSD, macOS, Windows |
| 실시간 푸시 | Durable Objects + WebSocket, 에이전트 보고 후 프론트엔드가 즉시 새로고침 |
| 알림 통지 | 오프라인 알림, 복구 통지, 만료 리마인더, 리소스 부하 알림 |
| 테마 생태계 | 내장 테마, 테마 스토어, 서드파티 테마 리버스 프록시 및 미리보기 |
| 다국어 | 프론트엔드에 중국어/영어 전환 내장 |
Cloudflare Workers + D1을 선택하는 이유
제로 코스트로 운영
Cloudflare의 무료 할당량은 매우 관대합니다:
- Workers: 하루 10만 요청
- D1: 하루 500만 행 읽기, 10만 행 쓰기
- Durable Objects: 하루 10만 요청
CF-Server-Monitor는 이러한 할당량에 맞춰 특별히 최적화되었습니다: 기본 60초 보고 간격으로 약 60대의 서버를 지원하며, 120초로 변경하면 이론상 2배로 늘어납니다. 히스토리 쿼리는 샘플링 전략을 채택하고, 월간 데이터 테이블은 자동으로 로테이션하며, 캐싱 및 속도 제한 설계와 결합되어 무료 할당량을 초과하지 않도록 합니다.
글로벌 엣지 컴퓨팅
Cloudflare는 전 세계 300개 이상의 도시에 엣지 노드를 가지고 있습니다. Workers는 사용자에게 가장 가까운 노드에서 실행되며, API 응답 지연은 매우 낮습니다. D1 데이터베이스도 엣지 아키텍처를 기반으로 하며, 읽기 및 쓰기 작업은 모두 엣지에서 완료되며 중앙 서버로 돌아갈 필요가 없습니다.
유지보수 불필요
패치를 적용해야 하는 서버도 없고, 재시작해야 하는 Docker 컨테이너도 없으며, 백업해야 하는 데이터베이스도 없습니다. Cloudflare가 모든 인프라를 호스팅하며, 모니터링 대상 서버 자체에만 집중하면 됩니다.
다른 모니터링 도구와의 비교
| 기능 | CF-Server-Monitor | UptimeRobot | Prometheus + Grafana | Netdata |
|---|---|---|---|---|
| 비용 | 무료 (Cloudflare 무료 할당량) | 무료 버전 50개 모니터링 | 무료 (자체 서버 필요) | 무료 (자체 서버 필요) |
| 자체 서버 필요 | 아니오 | 아니오 | 예 | 예 |
| 서버 메트릭 | CPU/메모리/디스크/네트워크 전체 메트릭 | HTTP 상태 코드만 | 전체 메트릭 (설정 필요) | 전체 메트릭 |
| 실시간 푸시 | WebSocket 즉시 푸시 | 폴링 | 추가 설정 필요 | 실시간 |
| 유지보수 비용 | 제로 (Cloudflare가 호스팅) | 제로 | 높음 (서버 유지보수 필요) | 중간 |
| 오프라인 알림 | 지원 (Telegram/WeChat/DingTalk 등) | 지원 (제한적) | Alertmanager 설정 필요 | 지원 |
| 히스토리 데이터 | 7일 | 솔루션에 따라 다름 | 무제한 (스토리지에 따라 다름) | 제한적 |
| 보안 | 일방적 보고, 원격 채널 없음 | N/A | 직접 강화 필요 | WebSSH 위험 있음 |
여러 대의 VPS를 소유한 개인 개발자와 소규모 팀에게 CF-Server-Monitor는 비용과 편의성 측면에서 명확한 이점이 있습니다. PB 규모의 히스토리 데이터나 엔터프라이즈 SLA가 필요한 경우, Prometheus + Thanos가 더 적합할 수 있습니다.
시스템 아키텍처 분석
┌─────────────────┐ POST /update ┌──────────────────────┐
│ Server Agent │ ───────────────────> │ Cloudflare Worker │
│ (Go/Shell/PS) │ │ (엣지 컴퓨팅 함수) │
└─────────────────┘ └──────────┬───────────┘
│
┌───────────┼───────────┐
│ │ │
┌────▼───┐ ┌────▼────┐ ┌───▼────┐
│ D1 │ │Durable │ │ Vue │
│ SQLite │ │Objects │ │프론트엔│
│ 데이터 │ │WebSocket│ │드 대시 │
│ 베이스 │ │ │ │보드 │
└────────┘ └────┬────┘ └───┬────┘
│ │
┌────▼──────────▼───┐
│ 브라우저/모바일 │
│ 실시간 데이터 표시│
└───────────────────┘
핵심 데이터 흐름:
- 관리 백엔드에서 서버를 추가하고 설치 명령을 복사
- 대상 서버에 에이전트를 설치하고, 설정된 간격으로 Worker에게 메트릭을 전송
- Worker가
API_SECRET을 검증하고, D1에 쓰고, Durable Object를 통해 실시간 데이터를 브로드캐스트 - 프론트엔드 대시보드, 상세 페이지, 관리 백엔드, iOS 위젯이 동일한 API를 읽음
실전 배포: 제로에서 모니터링 시스템 구축
사전 준비
- Cloudflare 계정 (무료 버전으로 충분)
- GitHub 계정
- 충분히 복잡한
API_SECRET(에이전트 보고 키와 초기 백엔드 비밀번호를 겸함)
방법 1: Cloudflare Workers가 GitHub에 연결 (권장)
이것이 가장 번거롭지 않은 배포 방법이며, 이후 업데이트도 쉽게 동기화할 수 있습니다.
1단계: 리포지토리 포크
CF-Server-Monitor GitHub 리포지토리에 접속하여 Fork 버튼을 클릭합니다.
2단계: Worker 생성
- Cloudflare 대시보드에 로그인
- Workers & Pages로 이동
- "Worker 생성"을 클릭
- "GitHub 리포지토리 연결"을 선택하고, 포크한 리포지토리를 가져옴
3단계: 빌드 설정
- 빌드 명령:
npm run build:frontend - 배포 명령:
npx wrangler deploy
4단계: 환경 변수 추가
Worker의 Variables and Secrets에 추가:
| 변수명 | 값 | 설명 |
|---|---|---|
API_SECRET |
강력한 비밀번호 | 에이전트 보고 키 + 초기 백엔드 비밀번호 |
5단계: 배포
배포를 클릭하고 빌드가 완료될 때까지 기다립니다. 배포가 성공하면 xxx.workers.dev 도메인을 얻게 됩니다.
방법 2: GitHub Actions 자동 배포
GitHub를 통해 배포 프로세스를 완전히 관리하고 싶은 사용자에게 적합합니다.
- 리포지토리 포크
- Cloudflare에서 D1 데이터베이스 생성 (이름 권장:
server-monitor-db) - Cloudflare Account ID 복사
- Cloudflare API 토큰 생성 (Workers 편집 및 D1 배포 권한 필요)
- 포크한 리포지토리의 Settings → Secrets → Actions에 추가:
CF_API_TOKEN: Cloudflare API 토큰
CF_ACCOUNT_ID: Cloudflare Account ID
D1_DATABASE_ID: D1 데이터베이스 ID
API_SECRET: 강력한 비밀번호
CORS_ALLOWED_ORIGINS: (선택 사항) 허용되는 크로스 오리진 소스
main 브랜치로 푸시하면 자동으로 배포됩니다.
방법 3: 원클릭 배포
원클릭 배포는 빠른 체험에 적합하지만, 장기 유지보수의 경우 앞의 두 가지 방법으로 마이그레이션하는 것을 권장합니다.
최초 사용: 백엔드에 로그인하고 서버 추가
관리 백엔드에 로그인
배포 성공 후 접속:
https://당신의Worker도메인/admin#/admin
기본 인증 정보:
- 사용자 이름:
admin - 비밀번호: 설정한
API_SECRET
로그인 후 즉시 관리자 사용자 이름과 비밀번호를 변경하세요. 백엔드 비밀번호는 API_SECRET에서 분리할 수 있습니다 — 에이전트 보고는 여전히 환경 변수의 API_SECRET을 사용하지만, 백엔드 로그인 비밀번호는 독립적으로 설정할 수 있습니다.
첫 번째 서버 추가
/admin#/admin으로 이동- "서버 관리"에서 서버 이름을 입력
- "서버 추가"를 클릭
- 복사 버튼을 클릭하고, 대상 시스템과 에이전트 버전을 선택
- 생성된 설치 명령을 대상 서버에서 실행
백엔드에서 생성되는 명령에는 서버 ID, Worker URL, Secret, 보고 간격 등의 매개변수가 자동으로 포함되며, 수동으로 결합하는 것보다 더 신뢰할 수 있습니다.
모니터링 대상 서버 설정: 에이전트 설치 및 데이터 보고
Go 에이전트 (권장)
v2.8.3부터는 독립적인 cfsm-agent (Go 언어로 작성)가 기본적으로 사용되며, 설치 후 서비스 이름은 cf-probe입니다.
비 root 설치 (권장)
systemd --user를 지원하는 Linux 환경에서는 비 root 사용자로 설치하는 것을 권장합니다:
# 일반 사용자로 전환
su - youruser
# 백엔드에서 생성된 설치 명령 실행 (예시)
curl -sSL https://your-worker.example.com/install | bash -s -- \
-id 1 \
-secret "your-api-secret" \
-url "https://your-worker.example.com" \
-interval 60
설치 후 파일은 ~/.cf-probe/에 기록되며, systemd --user를 사용하여 자동 시작을 관리합니다.
사용자가 로그아웃한 후에도 서비스가 계속 실행되도록 하려면:
# root로 실행
loginctl enable-linger youruser
root 설치
비 root 사용자를 사용할 수 없는 경우, 직접 root로 설치할 수도 있습니다:
curl -sSL https://your-worker.example.com/install | bash -s -- \
-id 1 \
-secret "your-api-secret" \
-url "https://your-worker.example.com"
에이전트 일반 매개변수
| 매개변수 | 설명 | 기본값 |
|---|---|---|
-id |
서버의 고유 ID | 필수 |
-secret |
에이전트 보고 키, API_SECRET과 같아야 함 |
필수 |
-url |
Worker 보고 주소 | 필수 |
-collect_interval |
로컬 추가 수집 간격, 0은 추가 샘플링 없음을 의미 |
0 |
-interval |
보고 간격 (초) | 60 |
-ct / -cu / -cm / -bd |
사용자 정의 네트워크 품질 테스트 노드 | 내장 노드 |
-reset_day |
월간 트래픽 리셋 일 | 1 |
-rx_correction |
하행 월간 트래픽 보정 (GB) | 비어 있음 |
-tx_correction |
상행 월간 트래픽 보정 (GB) | 비어 있음 |
지원되는 플랫폼
- Linux: Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux 등 주요 배포판
- Alpine Linux: OpenRC를 사용하여 관리
- OpenWrt: 라우터에 최적
- Synology DSM: NAS 모니터링
- fnOS: 국산 NAS 시스템
- FreeBSD: BSD 계열 지원
- macOS: 개발 머신 모니터링
- Windows: PowerShell 버전
모니터링 대시보드 기능 상세
실시간 상태 표시
프론트엔드 대시보드는 4가지 뷰 모드를 지원합니다:
- 막대 그래프 모드: 각 서버의 CPU/메모리/디스크 사용률을 직관적으로 표시
- 링 차트 모드: 컴팩트한 표시, 서버 수가 많은 시나리오에 적합
- 테이블 모드: 상세한 데이터 목록, 정렬 및 필터링 지원
- 맵 모드: 지리적 위치를 기반으로 서버 분포를 표시
각 모드는 데스크톱과 모바일 적응을 지원합니다.
히스토리 데이터 및 차트
- 7일 히스토리 차트: CPU, 메모리, 디스크, 네트워크 트래픽의 시계열
- 장기간 샘플링: 히스토리 쿼리는 D1 초과를 피하기 위해 샘플링 전략을 채택
- 실시간 네트워크 속도: 업로드/다운로드 속도의 실시간 곡선
- 월간 트래픽 통계: 트래픽 리셋 일과 상하행 보정 지원
네트워크 품질 모니터링
중국 텔레콤,联通, 모바일, BGP 4개 네트워크의 지연 및 패킷 손실률 추적을 지원합니다. 3개 네트워크 상세를 활성화하면, 홈페이지는 D1의 최근 2시간에서 최대 20개의 실제 데이터 포인트를 표시하며, 5분 동안 캐시됩니다.
알림 통지
관리 백엔드 → 전역 설정 → 통지에서 설정합니다. 지원되는 통지 채널:
| 플랫폼 | 설정 방법 |
|---|---|
| Telegram | BotFather Bot Token + Chat ID |
| 기업微信 | 그룹 봇 Webhook URL |
| 飞书 | 그룹 봇 Webhook URL |
| 钉钉 | 사용자 정의 봇 Webhook URL |
| Bark | https://api.day.app/xxxx/ |
| Server酱 | https://sctapi.ftqq.com/<SendKey>.send |
| Gotify | https://gotify.example.com/message?token=xxx |
| 사용자 정의 Webhook | 임의의 HTTP POST 엔드포인트 |
알림 유형에는: 오프라인 알림, 복구 통지, 만료 리마인더, 리소스 부하 알림이 포함됩니다.
고급 설정
사용자 정의 도메인
Cloudflare 대시보드에서 Worker에 사용자 정의 도메인을 바인딩:
- Worker 설정 → 트리거로 이동
- 사용자 정의 도메인 추가 (예:
monitor.yourdomain.com) - Cloudflare가 SSL 인증서와 DNS 해결을 자동으로 처리
다중 Worker 집계
여러 Worker 인스턴스 (서로 다른 Cloudflare 계정에 분산)가 있는 경우, API_BASE 환경 변수를 통해 집계할 수 있습니다:
API_BASE: "https://worker1.example.com,https://worker2.example.com"
프론트엔드는 동시에 여러 Worker에게 요청을 보내고 통합하여 표시합니다.
GitHub Pages 정적 프론트엔드
프로젝트는 프론트엔드를 정적 사이트로 빌드하고 GitHub Pages에 배포하는 것을 지원하며, 원격 Worker API를 통해 데이터를 가져옵니다:
# 빌드 명령
npm run build:github-page
GitHub Secrets에서 API_BASE를 Worker 주소로 지정하도록 설정해야 합니다.
iOS Scriptable 위젯
프로젝트는 iOS Scriptable 위젯 스크립트를 제공하며, iPhone 데스크톱에 단일 서버의 상태를 표시할 수 있습니다:
- Scriptable 앱 설치
- 새 스크립트를 생성하고,
scripts/ios-scriptable-widget.js의 내용을 붙여넣기 - 상단의
CONFIG.baseURL을 사이트 주소로 변경 - Scriptable 위젯을 추가하고, Parameter에 서버 ID를 입력
위젯은 온라인 상태, CPU, 메모리, 디스크, 월간 트래픽, 실시간 속도, 업데이트 시간을 표시합니다.
보안 강화
- Turnstile 검증: 백엔드 보안 설정에서 Cloudflare Turnstile을 활성화하여 무차별 대입 공격을 방지
- CORS 화이트리스트:
CORS_ALLOWED_ORIGINS를 통해 API 액세스 소스를 제한 - CSP 정책: 사용자 정의 콘텐츠 보안 정책, XSS 공격을 방지
- JWT Secret:
API_SECRET에서 분리된 독립적인 JWT 서명 키
성능 최적화 및 비용 관리
Cloudflare 무료 할당량 최적화
CF-Server-Monitor에는 여러 할당량 친화적인 설계가 내장되어 있습니다:
- 월간 데이터 테이블 로테이션: 히스토리 데이터는 월별로 분할되어 단일 테이블이 너무 커지는 것을 방지
- 히스토리 쿼리 샘플링: 장기간 범위 쿼리는 자동 샘플링을 사용하고, D1 읽기 행을 줄임
- 캐싱 전략: 3개 네트워크 상세 데이터는 5분 동안 캐시되어 중복 쿼리를 줄임
- 속도 제한 설계: API 요청 빈도 제한, 악의적인 인터페이스 스팸을 방지
보고 간격 조정
| 시나리오 | 권장 간격 | 지원되는 서버 수 |
|---|---|---|
| 실시간 모니터링 (60초) | -interval 60 |
약 60대 |
| 일반 모니터링 (120초) | -interval 120 |
약 120대 |
| 저전력 모니터링 (300초) | -interval 300 |
약 300대 |
서버 수가 많은 경우, 보고 간격을 120초 이상으로 조정하는 것을 권장합니다. 대부분의 시나리오에서는 2분의 모니터링 세분화로 충분합니다.
WSS 보고 최적화
v2.8.4에서는 WSS (WebSocket Secure) 보고 기능이 도입되었습니다. 에이전트는 특정 시간대에 WSS를 사용하여 보고하고, 실시간 데이터 푸시의 적시성을 향상시킬 수 있습니다. 대상 시간대 외에는 자동으로 POST로 전환되며, Durable Objects의 시간 소비를 줄입니다.
제한 사항 및 주의 사항
무료 할당량의 경계
- D1 스토리지 상한: 무료 버전 D1 데이터베이스는 최대 500 MB이며, 장기 실행 시 히스토리 데이터를 정기적으로 정리해야 함
- Workers 요청 수: 하루 10만 요청, 60대 서버 × 60초 간격 ≈ 86,400회/일, 상한에 가까움
- Durable Objects: 무료 버전에는 동시성 제한이 있으며, 많은 프론트엔드가 동시에 연결되면 속도 제한이 트리거될 수 있음
기능 제한
- 히스토리 데이터는 7일만: D1 무료 할당량의 제한으로 인해, 7일을 초과하는 데이터는 샘플링되거나 정리됨
- WebSSH 없음: 보안상의 이유로 원격 터미널 기능은 제공되지 않음 (이는 실제로 장점)
- Cloudflare에 의존: Cloudflare 서비스가 중단되면, 모니터링 시스템도 사용할 수 없게 됨
보안 권장
- 강력한 비밀번호:
API_SECRET은 무작위 강력한 비밀번호여야 하며, 기본값을 사용하지 않음 - 비밀번호 적시 변경: 최초 로그인 후 즉시 관리자 사용자 이름과 비밀번호를 변경
- 비 root 실행: 가능한 한 비 root 사용자로 에이전트를 설치
- 정기적인 업데이트: 프로젝트 업데이트에 주목하고, Worker와 에이전트 버전을 적시에 업그레이드
요약
CF-Server-Monitor는 현재 가장 우아한 무료 서버 모니터링 솔루션 중 하나입니다. Cloudflare의 무료 할당량을 교묘히 활용하여 대시보드, API, 데이터베이스, 실시간 푸시를 모두 엣지 네트워크에 호스팅하고, 진정한 제로 코스트, 제로 유지보수를 실현했습니다.
누구에게 적합한가:
- 여러 대의 VPS를 소유한 개인 개발자
- 경량 모니터링이 필요한 소규모 팀
- 모니터링 서버를 유지보수하고 싶지 않은 사용자
- 보안에 관심 있는 사용자 (일방적 보고, 원격 채널 없음)
누구에게 적합하지 않은가:
- PB 규모의 히스토리 데이터가 필요한 엔터프라이즈 사용자
- WebSSH와 원격 명령 실행이 필요한 사용자
- SLA에 엄격한 요구가 있는 프로덕션 환경
무료, 안전, 사용하기 쉬운 멀티 서버 모니터링 솔루션을 찾고 있다면, CF-Server-Monitor는 시도해 볼 가치가 있습니다. 엔터프라이즈 수준의 Prometheus + Grafana 솔루션을 대체할 수는 없지만, 개인 개발자와 소규모 팀에게는 충분히 우수합니다.
프로젝트 주소: https://github.com/huilang-me/CF-Server-Monitor 온라인 데모: https://demo.huilang.me/
자주 묻는 질문 (FAQ)
1. CF-Server-Monitor는 정말 완전히 무료입니까?
네, 모니터링 규모가 Cloudflare의 무료 할당량 내 (하루 10만 Workers 요청, 500만 행 D1 읽기)에 있다면, 1원도 지불할 필요가 없습니다. 기본 60초 보고 간격으로 약 60대의 서버를 지원하며, 120초로 변경하면 2배로 늘어납니다.
2. 데이터는 어디에 저장됩니까? 안전합니까?
데이터는 Cloudflare D1 (엣지 SQLite 데이터베이스)에 저장되며, Cloudflare에 의해 호스팅됩니다. 에이전트는 일방적 보고 설계를 채택하고, WebSSH나 원격 명령 실행 기능을 제공하지 않으며, 에이전트가 침해되더라도 서버를 원격 제어할 수 없습니다.
3. 어떤 운영 체제를 지원합니까?
주요 Linux 배포판 (Ubuntu, Debian, CentOS 등), Alpine Linux, OpenWrt, Synology DSM, fnOS, FreeBSD, macOS, Windows를 지원합니다. 기본적으로 Go 언어로 작성된 에이전트를 사용하며, 성능이 좋고 크로스 플랫폼 호환성이 강합니다.
4. 오프라인 알림 통지를 받으려면 어떻게 해야 합니까?
관리 백엔드 → 전역 설정 → 통지에서 설정합니다. Telegram, 기업微信, 飞书, 钉钉, Bark, Server酱, Gotify 및 사용자 정의 Webhook을 지원합니다. 설정 후, 서버가 오프라인 상태가 되면 즉시 통지가 푸시됩니다.
5. 사용자 정의 도메인을 바인딩할 수 있습니까?
네. Cloudflare 대시보드의 Worker 설정에서 사용자 정의 도메인을 추가하면, Cloudflare가 SSL 인증서와 DNS 해결을 자동으로 처리합니다. 프론트엔드를 GitHub Pages에 배포하고 사용자 정의 도메인을 사용하는 것도 지원합니다.