dd/CHANGELOG.md

2.5 KiB

변경 이력

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. 커밋 메시지 예시 추가