-
Notifications
You must be signed in to change notification settings - Fork 1
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
지난 주의 인기 프로젝트 조회 성능 개선 #258
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
getAllPopularThisWeek() 라는 이름이 주간(지난 주) 인기 프로젝트의 의미와 다르기 때문에 포괄적인 이름으로 변경
- getLastDayOfWeek(LocalDate date): date를 기준으로 지난 일요일 반환 (date가 일요일이면 그래도 date 반환)
📝 Jacoco Test Coverage
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎫 관련 이슈
Resolves #257
✅ 구현 내용
💬 코멘트
플로우 차트
성능 테스트
💬 성능 테스트는 지난 주 좋아요 생성 수가 약 50,000개(5 만개)이고, 초당 약 10개 ~ 40개의 인기 프로젝트 조회 요청을 했을 때로 가정하고 진행했습니다! 성능 테스트 툴은 Artillery를 사용했습니다:)
❗️ 처음에는 지난 주 좋아요 생성 수가 약 5,000개인 경우로 성능 테스트를 진행했는데, 데이터가 적어서 그런지 캐시를 쓰는 것보다 오히려 안쓰는 것이 더 성능이 좋더라구요! 그런데 좋아요 생성 수가 늘어날수록 조인 연산 등 쿼리가 복잡해져 기하급수적으로 느려지는 것 같습니다.. 주별로 좋아요 수를 미리 카운팅해도 성능 향상이 될 것 같네요😊 다음에 도전..!
그리고 일주일동안 생성된 좋아 수가 50만개 일때는 초당 100개 이상의 time out이 나더라구요😅 해당 경우는 너무 트래픽이 극단적이라 오히려 비교가 정확하지 않을 것 같아서 5만개로 했습니다!
💡 결론, 캐시 도입으로 인해 99%의 요청이 25배 더 빠른 응답 속도를 얻을 수 있습니다!