피드로 돌아가기
How I built an anonymous daily leaderboard — and why it resets every night
Dev.toDev.to
Backend

Cloudflare KV TTL 기반의 자동 리셋 익명 리더보드 설계

How I built an anonymous daily leaderboard — and why it resets every night

Clackpit2026년 5월 18일5beginner

Context

계정 생성의 Friction으로 인한 사용자 전환율 저하와 All-time 리더보드의 상위권 고착화로 인한 신규 유저의 동기 부여 상실 문제를 식별함. 지속적인 정체성 부여와 경쟁 가능 기간의 제한을 통해 사용자 참여도를 높이는 구조적 개선이 필요했음.

Technical Solution

  • LocalStorage 기반의 Anonymous Handle 생성 및 저장으로 회원가입 절차를 제거한 Zero-friction 진입 구조 설계
  • Curated Wordlist를 통한 무작위 Handle 생성 로직으로 사용자 식별성과 재미 요소 동시 확보
  • Cloudflare Workers와 KV Storage를 활용하여 서버리스 환경의 가벼운 데이터 저장소 구축
  • KV Store의 TTL(Time To Live) 기능을 활용하여 매일 UTC 0시에 리더보드를 자동 삭제하는 State Reset 메커니즘 구현
  • Read-Modify-Write 패턴으로 Top 100 리스트를 정렬 및 슬라이싱하여 저장 공간 최적화 및 읽기 성능 유지

- 사용자 진입 장벽 제거를 위해 LocalStorage 기반의 임시 식별자 도입 검토 - 주기적인 데이터 초기화가 필요한 경우 Cron Job 대신 KV Store의 TTL 기능을 활용한 자동화 고려 - 상위 랭킹 고착화 방지를 위해 All-time 방식보다 Daily/Weekly 단위의 Time-windowed 리더보드 설계 적용

원문 읽기