dd/CHANGELOG.md

93 lines
2.5 KiB
Markdown

# 변경 이력
## 2025-11-15
### 🐛 버그 수정: 실시간 접속자 수 문제 해결
**문제:**
- 여러 클라이언트가 연결되어도 "실시간 접속자 수"가 1에서 증가하지 않음
**원인:**
- WebSocket Hibernation API 사용 시, `this.sessions` Map이 hibernation 후 초기화됨
- `this.sessions.size`는 정확한 접속자 수를 반영하지 못함
**해결:**
- `this.ctx.getWebSockets().length`를 사용하여 실제 연결된 WebSocket 개수 확인
**변경된 파일:**
- `src/lib/counter-do.ts` - `broadcast()` 메서드 수정
**커밋:**
```
fix: 실시간 접속자 수가 정확하게 표시되도록 수정
- this.sessions.size 대신 this.ctx.getWebSockets().length 사용
- WebSocket Hibernation API와 호환되는 방식으로 변경
```
---
## 2025-11-14
### ✨ 초기 프로젝트 생성
**구현 사항:**
- ✅ SvelteKit 5 + Cloudflare Workers 프로젝트 설정
- ✅ Durable Objects 구현 (WebSocket Hibernation API)
- ✅ 실시간 카운터 UI (Tailwind CSS)
- ✅ WebSocket 양방향 통신
- ✅ 영구 저장소 연동 (Durable Objects Storage)
- ✅ Post-build 스크립트로 Worker 자동 패치
- ✅ 문서화 (README, QUICKSTART, DEPLOYMENT, PROJECT_STRUCTURE)
**주요 파일:**
- `src/lib/counter-do.ts` - Durable Object 클래스
- `src/routes/api/counter/+server.ts` - WebSocket API 엔드포인트
- `src/routes/+page.svelte` - 클라이언트 UI
- `scripts/patch-worker.js` - Worker 패치 스크립트
- `wrangler.jsonc` - Cloudflare Workers 설정
**기능:**
- 실시간 카운터 증가/리셋
- 실시간 접속자 수 표시
- 마지막 업데이트 시간 표시
- WebSocket 연결/연결 해제
- 모든 클라이언트 간 실시간 동기화
---
## 향후 계획
### 🚀 기능 추가 예정
- [ ] 여러 카운터 룸 (URL 파라미터 기반)
- [ ] 사용자 인증 (Cloudflare Access)
- [ ] 카운트 히스토리 (D1 SQLite 통합)
- [ ] 실시간 채팅 기능
- [ ] 관리자 대시보드
- [ ] 통계 및 분석
- [ ] 커스텀 테마
- [ ] 모바일 앱 (PWA)
### 🔧 개선 예정
- [ ] 자동 재연결 로직 강화
- [ ] 오프라인 모드 지원
- [ ] 성능 최적화
- [ ] 에러 핸들링 개선
- [ ] 테스트 코드 추가
- [ ] CI/CD 파이프라인 구축
---
## 기여 가이드
변경사항을 기록할 때:
1. 날짜별로 구분
2. 카테고리 사용: 🐛 버그수정, ✨ 새기능, 🔧 개선, 📚 문서
3. 변경 사유와 방법을 명확히 기술
4. 관련 파일 목록 포함
5. 커밋 메시지 예시 추가