-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BE] refactor: 리뷰 랭킹 알고리즘 개선 #737
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨어요 망고!
현재 모든 Review를 findAll로 받아와서 각 리뷰에 대해 점수를 계산한 뒤 상위 3개 리뷰를 반환하도록 구현했습니다.
전체 리뷰가 많아지면 성능 상 문제가 생기지 않을까요??
근데 랭킹 점수 계산은 Review 도메인 로직으로 처리하는 게 맞는 것 같아요.
어떻게 해야 될까요~?
리뷰 좋아요가 하나 이상인 리뷰만 find 하도록 해볼까요??
저는 좋아요가 하나 이상인 데이터만 가져오면 더 효과적일 것 같긴한데, 내일 더 이야기해보면 좋을 것 같아요!
그리고 위에 gravity도 임의로 저렇게 설정해봤는데 적당한지 한 번 봐주세용
만약 엄청나게 시간이 많다면 A/B 테스트를 해서 사용자가 어떤걸 더 많이 클릭하는지 보거나, 옆에 따봉, 역따봉을 붙여서 데이터를 확인해보면 될 것 같은데, 그런 상황이 아니라서 더 어렵네요
저는 0.5도 좋고, 만약 기본값으로 하는 국룰값이 있으면 그걸로 하는 것도 좋아보여요
backend/src/main/java/com/funeat/review/application/ReviewService.java
Outdated
Show resolved
Hide resolved
backend/src/test/java/com/funeat/review/application/ReviewServiceTest.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
전체 리뷰가 많아지면 성능 상 문제가 생기지 않을까요??
근데 랭킹 점수 계산은 Review 도메인 로직으로 처리하는 게 맞는 것 같아요.
어떻게 해야 될까요~?
리뷰 좋아요가 하나 이상인 리뷰만 find 하도록 해볼까요??
그리고 위에 gravity도 임의로 저렇게 설정해봤는데 적당한지 한 번 봐주세용
도메인에서 처리하는거 너무 좋아요👍
중력상수는 소수 아무거나면 다 괜찮을 거 같습니당
좋아요가 몇개이상인것만 가져올지 얘기해서 정하면 좋을 것 같아요
나머지 코드는 깔끔해서 어푸릅하겠습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 모든 Review를 findAll로 받아와서 각 리뷰에 대해 점수를 계산한 뒤 상위 3개 리뷰를 반환하도록 구현했습니다.
전체 리뷰가 많아지면 성능 상 문제가 생기지 않을까요??
근데 랭킹 점수 계산은 Review 도메인 로직으로 처리하는 게 맞는 것 같아요.
어떻게 해야 될까요~?
리뷰 좋아요가 하나 이상인 리뷰만 find 하도록 해볼까요??
랭킹 점수 계산은 지금처럼 Review
가 처리하는게 좋은 것 같아요!
findAll 성능 관련해서는
일단은 말씀하신대로 리뷰 좋아요가 하나 이상인 리뷰만 find하도록 해두고..!
추후에 리뷰가 쌓이고 + 리뷰가 주기적으로 작성된다는게 보장이된다면
find하는 리뷰의 기간 제한을 두는게 어떤지?!
(시간에 대한 가중치로 계산하는 로직은 그대로 유지하되 대상이 되는 기간을 정하기)
그리고 위에 gravity도 임의로 저렇게 설정해봤는데 적당한지 한 번 봐주세용
0.5 괜찮아보입니다!! 로건말처럼 국룰 값이 있다면 그거도 좋을 것 같아요
좋아요가 하나 이상인 리뷰만 랭킹에 들어가도록 수정했습니다. 그리고 그 과정에서 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Conflict 해결하고, 다시 코드 봐야 할 것 같아요~
다른 부분은 리뷰할 게 없네요 👍👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트도 통과를 잘해서, 충돌해결 잘된 것 같아요!!!
너무 고생하셨습니당!!
Issue
✨ 구현한 기능
시간에 대한 가중치 추가
age
: 현재 시간 - 리뷰 작성 시간 (ChronoUnit.DAYS.between
으로 비교해서 day 단위)gravity
: 시간에 대한 중력 상수 (높을 수록 시간이 지남에 따라 급격하게 점수 낮아짐) =>0.5
로 선정좋아요 10개 & 14일
~=좋아요 7개 & 7일
~=좋아요 5개 & 3일
)📢 논의하고 싶은 내용
현재 모든
Review
를findAll
로 받아와서 각 리뷰에 대해 점수를 계산한 뒤 상위 3개 리뷰를 반환하도록 구현했습니다.Review
도메인 로직으로 처리하는 게 맞는 것 같아요.그리고 위에
gravity
도 임의로 저렇게 설정해봤는데 적당한지 한 번 봐주세용🎸 기타
X
⏰ 일정