Skip to content

[태태] Chapter 8. Spring Security - Security 구조, 폼 로그인#113

Open
EH-OI wants to merge 7 commits into
mainfrom
tata/week8
Open

[태태] Chapter 8. Spring Security - Security 구조, 폼 로그인#113
EH-OI wants to merge 7 commits into
mainfrom
tata/week8

Conversation

@EH-OI
Copy link
Copy Markdown

@EH-OI EH-OI commented May 23, 2026

✏️ 작업 내용

#️⃣ 연관된 이슈

closes #(issue_num)


💡 함께 공유하고 싶은 부분

해당 주차를 공부하면서 함께 이야기하고 싶은 주제를 남겨주세요.

(어려웠던 부분과 해결 과정, 핵심 코드, 참고한 자료 등)


🤔 질문

해당 주차 워크북을 공부하면서 궁금했던 질문들을 남겨주세요.


✅ 워크북 체크리스트

  • 모든 핵심 키워드 정리를 마쳤나요?
  • 핵심 키워드에 대해 완벽히 이해하셨나요?
  • 이론 학습 이후 직접 실습을 해보는 시간을 가졌나요?
  • 미션을 수행하셨나요?
  • 미션을 기록하셨나요?

✅ 컨벤션 체크리스트

  • 디렉토리 구조 컨벤션을 잘 지켰나요?
  • pr 제목을 컨벤션에 맞게 작성하였나요?
  • pr에 해당되는 이슈를 연결하였나요?
  • 적절한 라벨을 설정하였나요?
  • 스터디원들에게 code review를 요청하기 위해 reviewer를 등록하였나요?
  • 닉네임/main 브랜치의 최신 상태를 반영하고 있는지 확인했나요?

📌 주안점

@EH-OI EH-OI requested a review from a team May 23, 2026 06:45
@EH-OI EH-OI linked an issue May 23, 2026 that may be closed by this pull request
Copy link
Copy Markdown

@DOHOON0127 DOHOON0127 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! auth나 handler 부분도 다음 주차에 같이 만들어주세요~

Comment on lines +45 to +83
@GetMapping("/my")
public ApiResponse<CursorResponseDto<ReviewResponseDto.MyReviewDto>> getMyReviews(
@RequestHeader(name = "userId") Long userId,
@RequestParam(name = "cursor", defaultValue = "-1") String cursor,
@RequestParam(name = "query", defaultValue = "id") String query,
@RequestParam(name = "size", defaultValue = "10") Integer size
) {
Slice<Review> reviewSlice = reviewQueryService.getMyReviews(userId, cursor, query, size);

List<ReviewResponseDto.MyReviewDto> data = reviewSlice.stream()
.map(r -> ReviewResponseDto.MyReviewDto.builder()
.reviewId(r.getId())
.storeName(r.getStore().getName())
.star(r.getStar())
.content(r.getContent())
.createdAt(r.getCreatedAt())
.build())
.collect(Collectors.toList());

String nextCursor = null;
if (reviewSlice.hasNext() && !data.isEmpty()) {
Review lastReview = reviewSlice.getContent().get(reviewSlice.getContent().size() - 1);
if (query.equalsIgnoreCase("star")) {
nextCursor = lastReview.getStar() + ":" + lastReview.getId();
} else {
nextCursor = String.valueOf(lastReview.getId());
}
}

CursorResponseDto<ReviewResponseDto.MyReviewDto> response = CursorResponseDto.<ReviewResponseDto.MyReviewDto>builder()
.data(data)
.hasNext(reviewSlice.hasNext())
.nextCursor(nextCursor)
.pageSize(reviewSlice.getSize())
.build();

return ApiResponse.onSuccess(GeneralSuccessCode.OK, response);
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

컨트롤러에 있는 DTO변환이나 커서 조립 로직은 Converter로 빼는 것도 고려해보시면 좋을 것 같습니다~

Comment on lines +14 to +39
public class ReviewQueryServiceImpl {

private final ReviewRepository reviewRepository;

public Slice<Review> getMyReviews(Long userId, String cursor, String query, Integer size) {
PageRequest pageRequest = PageRequest.of(0, size);

if (query.equalsIgnoreCase("star")) {
if (cursor.equals("-1")) {
return reviewRepository.findMyReviewsOrderByStarDesc(userId, pageRequest);
} else {
String[] cursorSplit = cursor.split(":");
Float cursorStar = Float.parseFloat(cursorSplit[0]);
Long cursorId = Long.parseLong(cursorSplit[1]);
return reviewRepository.findMyReviewsByStarCursor(userId, cursorStar, cursorId, pageRequest);
}
} else {
if (cursor.equals("-1")) {
return reviewRepository.findMyReviewsOrderByIdDesc(userId, pageRequest);
} else {
Long cursorId = Long.parseLong(cursor);
return reviewRepository.findMyReviewsByIdCursor(userId, cursorId, pageRequest);
}
}
}
} No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

#100 (comment)

여기서 HandlerMethodArgumentResolver 활용하는 방법 찾아보시는 것도 추천드립니다!

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.

Chapter 8. Spring Security - Security 구조, 폼 로그인

2 participants