- 스토어 상세보기 API 3개로 분할
1. 스토어 API
2. 베스트 게시글(게시물 3개) API
3. 스토어가 갖고 있는 전체 게시글 API
- "3"번 API 커서 기반 무한스크롤 구현
- 스토어 상세보기 코드 리팩토링
- 파일 분할
- null 명시적으로 변경
- @QueryProjection를 사용하여 fetch 결과 값 바로 Dto로 변경
시급한 정도
- 천천히
중점적으로 봐줬으면 하는 부분
private List<PopularBoardDto> getPopularBoardDtoList(List<Long> topBoardIds,
Long memberId) {
Expression<Long> conditionalWhislistProduct =
Objects.nonNull(memberId) ? wishListBoard.id : emptywishListBoardNumber;
JPAQuery<PopularBoardDto> queryBeforeFetch = queryFactory
.select(
new QPopularBoardDto(
ranking.id,
board.id,
board.profile,
board.title,
board.price,
product.category,
conditionalWhislistProduct))
.distinct()
.from(ranking)
.join(product).on(ranking.board.eq(product.board))
.join(board).on(product.board.eq(board))
.where(ranking.id.in(topBoardIds))
.orderBy(ranking.board.id.desc());
해당 부분은 랭크 테이블이 수정됨에 따라 수정될 쿼리입니다
기타
워낙 예전에 코드를 개판으로 짜놔서 수정하는데 시간도 많이 걸리고 File Changed도 많이 나왔네요.. 좋은 코드 짜도록 노력하겠습니다!
주요 변경사항
시급한 정도
중점적으로 봐줬으면 하는 부분
기타
리팩토링 된 화면