Skip to content

✨ Feat: 실시간 랭킹 조회 기능 구현#11

Merged
Bumnote merged 6 commits intodevfrom
feat/get-realtime-ranking
Mar 19, 2025
Merged

✨ Feat: 실시간 랭킹 조회 기능 구현#11
Bumnote merged 6 commits intodevfrom
feat/get-realtime-ranking

Conversation

@Bumnote
Copy link
Copy Markdown
Member

@Bumnote Bumnote commented Mar 19, 2025

#️⃣ 연관된 이슈

#9

📝 작업 내용

  • 회원들의 타이핑 결과 정보를 통해서 실시간 랭킹 조회 기능을 구현합니다.
  • 저장된 회원들의 타이핑 결과 정보를 JPA native query를 활용하여 순위를 구현합니다.
  • 실시간 랭킹 기능에 대해서 테스트를 진행합니다.
  • 순위를 정하는 기준은 다음과 같습니다.
    • WPM(분당 타자 수) -> 순간 최고 WPM -> ACC(정확도)

💬 리뷰 요구사항

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요


Bumnote added 6 commits March 20, 2025 00:28
- SQL 실행 쿼리 로그를 확인하기 위해서 application.yml 파일 설정을 추가하였습니다.
- SQL 쿼리에서 바인딩된 실제 값을 출력하기 위해서 TRACE 설정을 추가하였습니다.
issue #9
- 도메인 별로 묶기 위해서 파일 이동을 하였습니다.
- 타자 정보가 담긴 Typing 관련 파일들을 typing 폴더를 만들어 이동하였습니다.
issue #9
- 타자 결과 정보의 생성일과 수정일을 함께 저장하기 위해서 BaseEntity 추상 클래스 상속
issue #9
- API 호출 및 조회한 랭킹 정보를 반환하는 RankingController를 구현했습니다.
- DB에서 전달받은 데이터를 Controller 측으로 전달해주는 RankingService를 구현했습니다.
- 상위 최대 50등까지 타자 정보를 가져올 수 있는 JPA native query를 TypingRepository에 구현했습니다.
- JPA native query의 결과물을 직접 받을 수 있는 RankingResponse 객체를 구현했습니다.
issue #9
- CSRF 공격을 막기 위한 보호 기능을 비활성화했습니다.
- HTTP 기본 인증 방식을 비활성화했습니다.
- Form Login 설정을 비활성화했습니다.
- Logout 설정을 비활성화했습니다.
- 테스트를 진행하기 위해서 모든 요청에 대한 접근을 허용하였습니다.
- 추후 JWT 인증 방식을 도입하기 위해서 Session 설정을 비활성화했습니다.
issue #9
- 약 60개의 데이터를 미리 DB에 넣어 테스트하기 위해서 ranking.sql 파일을 만들어 저장하도록 구현했습니다.
- TypingRepository에 작성한 JPA native query가 정상적으로 작동하는지 단위 테스트를 진행했습니다.
- Repository에서 가져온 데이터가 RankingResponse DTO 객체에 잘 담겨있는지 RankingService 단위 테스트를 진행했습니다.
- Controller -> Service -> Repository -> DB -> Repository -> Service -> Controller 통합 테스트를 진행했습니다.
issue #9
@Bumnote Bumnote requested a review from kyubumjang March 19, 2025 16:08
@Bumnote Bumnote self-assigned this Mar 19, 2025
@Bumnote Bumnote linked an issue Mar 19, 2025 that may be closed by this pull request
4 tasks
@Bumnote Bumnote merged commit fbc6e82 into dev Mar 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 실시간 랭킹 구현

1 participant