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: offset 기반 리크루트 목록 조회 추가 #282

Merged
merged 10 commits into from
Oct 23, 2023

Conversation

khs960616
Copy link
Collaborator

@khs960616 khs960616 commented Oct 22, 2023

Issues

구분

  • 버그 수정
  • 기능 추가
  • 코드 리팩터링
  • 문서 업데이트
  • 기타

주요 변경점

  • SEO를 위한 페이지네이션 방법 변경

스크린샷

기타

@khs960616 khs960616 added feature 기능 추가 refactor 리팩터링 labels Oct 22, 2023
@khs960616 khs960616 self-assigned this Oct 22, 2023
Comment on lines 12 to 16
public class GetRecruitsReqDto {
private Long cursor;
private Integer next;

@NotBlank
private String category;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Cursor 기반일때는 Long타입일텐데 Integer로 받아도 괜찮을까요?
  2. Cursor를 받을때는 디폴트가 -1, page를 받을때는 디폴트가 1로
    Pageble 또는 PageRequest의 page는 0부터 시작이니까 1을 빼주는 로직이 들어가야 할 것 같은데 cursor기반과 offset 기반의 페이지네이션을 하나의 dto로 관리하게 되면 문제가 발생하지 않을까 합니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Long.valueOf로 해당 부분을 감싸서 처리하고 있으므로 별도의 에러는 발생하지 않습니다.
    -> Integer 범위를 넘어설 정도로 게시글이 등록되는 경우 문제가 되겠지만, 현실적으로 불가능한 수치이므로 문제가 없다고 생각해요.

  2. Cursor
    -> PageRequest로 만들때, 해당 부분을 별도 처리하도록 수정하겠습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

프론트 요청 사항으로 해당 부분 cursor, page로 스타일 일관되게 맞춘후, 해당 부분 인터페이스로 따로 빼서 쿼리 공유해서 쓸수 있게 해볼게요.

Copy link
Collaborator

@YongsHub YongsHub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

@@ -44,63 +43,100 @@ public class RecruitDynamicQueryRepositoryImpl implements RecruitDynamicQueryRep
private final JPAQueryFactory jpaQueryFactory;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JPAQueryFactory 가져다 쓰면 따로 RecruitDynamicQueryRepository를 통해 Override 할 필요가 없지 않을까 해서 의견 남겨봅니다

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

배포후 제거해도 문제가없으면 삭제할게요.

Comment on lines 134 to 137
Slice<Recruit> recruitPages = recruitRepository.findRecruitSliceByGetRecruitsReqDto(getRecruitsReqDto, pageable);
GetRecruitsResDto recruitsResDto = GetRecruitsResDto.fromPageAndMemberId(recruitPages, loginMemberId);
if(!recruitsResDto.getRecruits().isEmpty()) {
addRecruitParticipants(recruitsResDto);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

나중에 리팩토링 고려할 수도 있겠지만
recruitRepository.findRecruitSliceByGetRecruitsReqDto를 통해 필요한 데이터들만 Projection해서 가져오고
GetRecruitsResDto로 만드는 방법은 어떻게 생각하시나요

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 부분은 batch default를 이용해서 연관관계로 끌고오는 로직이 많아 당장에는 projection만으로 해결이 불가능해보입니다. 데이터 베이스 설계부터 다시 해야될 필요가 있을 것 같아요.

@khs960616 khs960616 force-pushed the feature/recruit-paging-#280 branch from e318f82 to e7b92f5 Compare October 23, 2023 08:20
@khs960616 khs960616 merged commit 638cf25 into SSAF-SOUND:dev Oct 23, 2023
1 check failed
@khs960616 khs960616 deleted the feature/recruit-paging-#280 branch October 24, 2023 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 기능 추가 refactor 리팩터링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants