Skip to content
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

[FEAT] 조회 API 성능 개선 #251

Closed
wants to merge 9 commits into from
Closed

[FEAT] 조회 API 성능 개선 #251

wants to merge 9 commits into from

Conversation

kimdozzi
Copy link
Contributor

PR 타입(하나 이상의 PR 타입을 선택해주세요)

☑ 기능 추가

□ 기능 삭제

□ 버그 수정

□ 의존성, 환경 변수, 빌드 관련 코드 업데이트


반영 브랜치

feat/208-search-api -> main


변경 사항

  • CustomPageImpl 구현
  • LimitedSizePagination 커스텀 어노테이션 생성
  • LocalDateTime 지원을 위한 의존성 추가 (Jackson에서 필요)

테스트 결과

ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다.


연관된 이슈

#208


리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
해당 기능들(특정 키워드의 검색, 신규/인기 챌린지)는 자주 조회가 되지만 데이터의 변경이 자주 발생하고, 관리하기 까다로운 조건을 가지고 있었습니다. 이러한 이유로 글로벌 캐시는 적용하지 않는 것이 낫다고 판단하였습니다. ㅠㅠㅠ

kimdozzi added 9 commits July 6, 2024 11:27
- PageImpl에서 제공하지 않는 기본 생성자를 생성하기 위해 CustomPageImpl 구현

- Page size 제한을 두기 위한 LimitedSizePagination 커스텀 어노테이션 생성

- CustomPageImpl을 활용한 데이터 직렬화/역직렬화 테스트
- Jackson에서는 LocalDateTime을 지원하지 않음. 해당 의존성 추가함으로써 사용 가능
- 자주 검색되는 키워드, 신규, 인기 챌린지에 캐싱 적용 시도.

- 생각보다 캐시 히트율이 낮으며, 다양한 챌린지가 생성되고 운영된다는 가정하에 캐시 적용에 적합하지 않다고 판단.

- 제공되는 카테고리의 종류도 너무 다양함. (검색 -> 전체, 시작 전, 진행 중, 종료) / (홈 화면 -> 전체, 신규, 인기, 추천)

- Redis를 학습하게 된 좋은 경험으로 접어두고 캐시 적용은 하기로 함
-
@kimdozzi kimdozzi self-assigned this Aug 25, 2024
@kimdozzi kimdozzi linked an issue Aug 25, 2024 that may be closed by this pull request
5 tasks
Copy link

Test Results

184 files  184 suites   2s ⏱️
296 tests  10 ✅ 0 💤 286 ❌
304 runs   10 ✅ 0 💤 294 ❌

For more details on these failures, see this check.

Results for commit fbc8ed8.

@kimdozzi kimdozzi closed this Aug 25, 2024
@kimdozzi kimdozzi deleted the feat/208-search-api branch August 25, 2024 06:27
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] 조회 API 성능 테스트 및 개선
1 participant