Open sikdong opened 1 week ago
그러네요. 현재 로직은 11개를 가져온 후 다음 전처리 과정을 이행하기 위해 불필요한 아이템을 제거 (11개에서 10개로 만듦) 후 진행하는데, 순원님 클래스는 바로 Response로 만드니 문제가 될 수 있겠네요!
저도 내일 진행해보고 다시 댓글달겠습니다
동석님 이번 이슈 해결했습니다! 아래 PR 확인 부탁드릴게요
@Transactional(readOnly = true)
public CursorPageResponse<ReviewInfoResponse> getMyReviews(Long memberId, Long cursorId) {
List<ReviewSingleDto> myReviewList = reviewRepository.getMyReviews(memberId, cursorId);
if (ObjectUtils.isEmpty(myReviewList)) {
return CursorPageResponse.of(Collections.emptyList(), 10, ReviewInfoResponse::getId);
}
List<Long> reviewIds = 리뷰아이디들가져오기(myReviewList);
Map<Long, String> imagesMap = imageService.리뷰아이디들의_해당하는_이미지 가져오기(reviewIds);
Map<Long, List<Long>> likeMap = makeLikeMap(reviewIds);
List<ReviewInfoResponse> reviewInfoResponses = MappingReiew.reviewWithImageAndLike(myReviewList, imagesMap, likeMap);
ReviewInfoResponse reviewInfoResponses2 = 태그액션으로_바꾸기(reviewInfoResponses);
return CursorPageResponse.of(reviewInfoResponses2, 10, ReviewInfoResponse::getId);
}
이런 식으로 바꾸는 게 어떨까요? 그리고
+) 참고로 CursorPageResponse에 빈 DTO리스트 파라미터로 넘겨줘도 됩니다
Issue: ⚙️ Refactoring
순원님이 만들어 놓으신 CusorPageResponse에 대한 의견 요청
Description
CursorPageResponse 로 변경 중 다른 도메인은 모르겠지만 제가 만든 Review 쪽에는 적용이 어려워 도움 요청 차 이슈를 남깁니다
적용이 어렵다고 생각하는 이유
이번에 만들어주신 클래스는 첫번째 매개변수에 최종 dto(ReviewInfoResponse)를 담아야 하는데 ReviewInfoResponse는 Early Return이 되지 않는 경우(dto가 비어있지 않은 경우)에만 만들어지기 때문에 if -else 구문을 써보려고도 했지만 비어있는 경우 이후 로직을 안타는 것이 더 성능 상 좋겠다는 생각이 들었습니다
이 이슈를 올린 이유는 다른 분들이 실제로 이 클래스를 사용했을 때 어떠셨는지 여쭤보고 싶었고 이 클래스는 사용하기 어렵다가 아닌 좀 더 같의 의논하면서 발전시켜보고 싶어서 올렸습니다. 의견 부탁 드립니다
To do
ETC