166 lines
3.4 KiB
Markdown
166 lines
3.4 KiB
Markdown
# 배포 체크리스트
|
|
|
|
## ✅ 배포 전 확인사항
|
|
|
|
### 1. 프로젝트 빌드
|
|
```bash
|
|
pnpm build
|
|
```
|
|
- [ ] 빌드가 성공적으로 완료됨
|
|
- [ ] 에러 메시지가 없음
|
|
|
|
### 2. Wrangler 로그인
|
|
```bash
|
|
npx wrangler login
|
|
```
|
|
- [ ] Cloudflare 계정에 로그인됨
|
|
|
|
### 3. 설정 파일 확인
|
|
|
|
#### wrangler.jsonc
|
|
- [ ] `name`: 프로젝트 이름이 올바름
|
|
- [ ] `durable_objects.bindings`: COUNTER 바인딩이 설정됨
|
|
- [ ] `migrations`: v1 마이그레이션이 있음
|
|
|
|
## 📦 배포
|
|
|
|
### 1. 배포 실행
|
|
```bash
|
|
pnpm deploy
|
|
```
|
|
|
|
또는
|
|
|
|
```bash
|
|
npx wrangler deploy
|
|
```
|
|
|
|
### 2. 배포 확인
|
|
- [ ] 배포 성공 메시지 확인
|
|
- [ ] 배포 URL 확인 (예: https://dd.your-subdomain.workers.dev)
|
|
|
|
### 3. Cloudflare Dashboard 확인
|
|
|
|
https://dash.cloudflare.com 접속
|
|
|
|
1. **Workers & Pages** 선택
|
|
2. 배포된 Worker 선택
|
|
3. **Settings** 탭:
|
|
- [ ] Durable Objects 바인딩 확인
|
|
- [ ] Environment Variables 확인 (필요한 경우)
|
|
|
|
## 🧪 테스트
|
|
|
|
### 1. 기본 기능 테스트
|
|
- [ ] 배포 URL 접속 가능
|
|
- [ ] 페이지가 올바르게 로드됨
|
|
- [ ] "연결하기" 버튼 클릭
|
|
- [ ] WebSocket 연결 성공 (초록색 표시)
|
|
- [ ] "카운트 증가" 버튼 클릭하여 카운트 증가
|
|
- [ ] 숫자가 실시간으로 업데이트됨
|
|
- [ ] "리셋" 버튼으로 카운트 초기화
|
|
|
|
### 2. 다중 클라이언트 테스트
|
|
- [ ] 여러 브라우저/탭에서 동시 접속
|
|
- [ ] 모든 클라이언트에서 동일한 카운트 표시
|
|
- [ ] 한 클라이언트에서 카운트 증가 시 모든 클라이언트 업데이트
|
|
- [ ] 실시간 접속자 수가 정확함
|
|
|
|
### 3. 영속성 테스트
|
|
- [ ] 카운트 증가
|
|
- [ ] 모든 클라이언트 연결 해제
|
|
- [ ] 다시 연결
|
|
- [ ] 이전 카운트 값이 유지됨
|
|
|
|
## 🔍 문제 해결
|
|
|
|
### Durable Objects 오류
|
|
|
|
만약 "Durable Object not configured" 오류가 발생하면:
|
|
|
|
```bash
|
|
# 1. wrangler.jsonc 확인
|
|
# 2. 다시 배포
|
|
npx wrangler deploy
|
|
|
|
# 3. Dashboard에서 Durable Objects 바인딩 확인
|
|
```
|
|
|
|
### WebSocket 연결 실패
|
|
|
|
```bash
|
|
# 실시간 로그 확인
|
|
npx wrangler tail
|
|
```
|
|
|
|
### 빌드 오류
|
|
|
|
```bash
|
|
# 깨끗하게 재빌드
|
|
rm -rf .svelte-kit node_modules
|
|
pnpm install
|
|
pnpm build
|
|
```
|
|
|
|
## 📊 모니터링
|
|
|
|
### 실시간 로그
|
|
```bash
|
|
pnpm cf:tail
|
|
```
|
|
|
|
### Cloudflare Analytics
|
|
Dashboard > Workers & Pages > [프로젝트 이름] > Analytics
|
|
|
|
모니터링 항목:
|
|
- 요청 수
|
|
- 에러율
|
|
- CPU 시간
|
|
- Duration (GB-seconds)
|
|
|
|
## 🔄 업데이트 배포
|
|
|
|
코드 변경 후:
|
|
|
|
```bash
|
|
# 1. 변경사항 확인
|
|
git status
|
|
|
|
# 2. 커밋
|
|
git add .
|
|
git commit -m "Update: [변경 내용]"
|
|
|
|
# 3. 빌드 및 배포
|
|
pnpm build
|
|
pnpm deploy
|
|
|
|
# 4. 배포 확인
|
|
# URL 접속하여 변경사항 확인
|
|
```
|
|
|
|
## 💰 비용 관리
|
|
|
|
### Free Tier 제한 (2024년 기준)
|
|
- 100,000 요청/일
|
|
- Durable Objects: 1 GB-second/일 무료
|
|
|
|
### 비용 절감 팁
|
|
- WebSocket Hibernation API 사용 (현재 구현됨)
|
|
- 불필요한 로그 제거
|
|
- 연결 풀링 최적화
|
|
|
|
## 🚀 다음 단계
|
|
|
|
- [ ] 커스텀 도메인 연결
|
|
- [ ] HTTPS 인증서 설정 (자동)
|
|
- [ ] 모니터링 및 알림 설정
|
|
- [ ] 백업 및 복구 계획
|
|
|
|
## 📚 추가 리소스
|
|
|
|
- [Cloudflare Workers 문서](https://developers.cloudflare.com/workers/)
|
|
- [Durable Objects 가이드](https://developers.cloudflare.com/durable-objects/)
|
|
- [Wrangler CLI 문서](https://developers.cloudflare.com/workers/wrangler/)
|
|
- [SvelteKit Cloudflare 어댑터](https://kit.svelte.dev/docs/adapter-cloudflare)
|
|
|