랭킹 기능

생성일
2025/01/31 06:45
태그

화면 이미지

배경

매일 자정마다 러닝 기록 데이터를 집계하여 월 별로 상위 20위 까지 사용자 랭킹을 볼 수 있습니다.
랭킹 기능을 통해 사용자들에게 러닝에 대한 즐거움 및 동기부여를 제공하려는 목적으로 만들었습니다.

구현한 기능

BE
1.
러닝 기록 데이터 집계
매일 자정마다 1회 수행되며, 월 별 러닝 기록 데이터를 집계합니다.
시스템을 사용하는 모든 사용자의 해당 월 데이터를 비교해야 하기 때문에 Spring Batch 를 사용하였습니다.
해당 월의 러닝 기록 데이터를 조회하여 거리 / 시간에 대한 가중치를 부여하고, 특정 거리 수를 초과하면 가중치를 추가 부여하여 점수를 부여합니다.
2.
랭킹 조회
집계된 랭킹 점수의 상위 20명에 대해 랭킹을 조회합니다.
FE
20위까지 프로필 사진, 닉네임, 달린 거리를 보여줍니다.
1위, 2위 3위는 텍스트 대신 이모지와 다른 색의 배경색을 보여줍니다.

추가적으로 구현하고 싶은 기능(아쉬운 점?)

더 많은 순위를 가져와서 페이지네이션과 무한스크롤을 구현해보고 싶다.