리더보드의 특성과 기능 요구사항
리더보드(Leaderboard)
- 게임이나 경쟁에서 상위 참가자의 랭킹과 점수를 보여주는 기능
- 순위로 나타낼 수 있는 다양한 대상에 응용 (최다 구매 상품, 리뷰 순위 등)
리더보드의 동작(API 관점)
- 점수 생성 / 업데이트 => ex: SetScore(userId, score)
- 상위 랭크 조회 (범위 기반 조회) => ex: getRange(1~10)
- 특정 대상 순위 조회 (값 기반 조회) => ex: getRank(userId)
⇒ “빠른 업데이트 / 빠른 조회가 필요”
데이터 구조와 성능 문제
Redis를 사용했을 때의 장점
- 순위 데이터에 적합한 Sorted-Set의 자료구조를 사용하면 score를 통해 자동으로
정렬됨
- 용도에 특화된 오퍼레이션(Set 삽입 / 업데이트, 조회)이 존재하므로 사용이 간단함