[7주차/빈] 워크북 제출합니다#45
Conversation
|
우선 주안점에 대해 설명드릴게요! 필요한 필드만 직접 선언하는 방식에 대해서 사실 정답이 있는건 아니지만.. 아래 사항들을 참고해서 한번 생각 해보시고 결정해주시면 될 것 같아요.
저는 생성, 수정, 삭제 모두 추가하는게 큰 비용이 드는게 아니니까 BaseEntity 하나 두고 그냥 상속 받는게 깔끔하고 실수할 일 없다고 생각하기는 합니다! |
YoungJJun
left a comment
There was a problem hiding this comment.
7주차 피드백
-
이번주 미션에 대해서 오프셋, 커서 기반 페이지네이션 모두 잘 적용해 주셨습니다.
-
여러 ReqDTO에 검증 어노테이션 추가 및 GeneralExceptionAdvice 구현도 잘 된 것 같아요!
-
ReviewSuccessCode에REVIEW_FOUNDHttpStatus.FOUND로 설정되어 있는데 이게 단어는 FOUND인데 저희가 생각하는 찾았다는 의미의 FOUND가 아니라302 Redirect를 의미합니다.따라서 조회 성공 응답은
HttpStatus.OK (200)이 적절한 응답 입니다! -
ReviewRepository.findAllByMemberIdOrderByRatingDesc@Query부분에:memeberId라고 오타 있어요. -
ReviewService.getMyReviews()중간에
if (!req.cursor().equals(”-1”))에서 cursor가 null일 경우 NPE바로 아래
switch (req.sort().toLowerCase())에서sort가null일 경우.toLowerCase()호출 시 NPE두 값에 null이 들어올 수 있는지 체크 해주시고 검증로직 추가해주시면 좋을 것 같아요.
그리고 1번 상황 같은 경우는
"-1".equals(req.cursor())이런식으로 순서를 바꾸면cursor가null이어도 해결됩니다.이렇게 순서 바꾸는 패턴 엄청 자주 보게 되는것 같아서 알아두시면 좋을 것 같아요.
-
생일이
LocalDate에서LocalDateTime으로 변경하셨는데 저는 생일이면 시간은 포함하지 않는게 더 자연스러운 것 같아요. 특별히 시간까지 기록하는 이유가 있으신가요?? -
HomeController
public ApiResponse<HomeResDTO.HomeDTO> getHome( @RequestParam(name = "region") @NotBlank String region, @PathVariable @NotNull Long memberId )
검증 어노테이션 붙어있는데 컨트롤러에
@Validated가 없습니다.@RequesBody는@Validated없이 각 항목에@Valid추가만으로 동작하지만@RequestParam,@PathVariable는@Validated가 붙어있는 상황에서만 동작합니다. 추가해주셔야@NotNull, @NotBlank동작할 것 같네요.
빈 7주차 수고하셨습니다! 담주도 화이팅해주세요~
✅ 실습 체크리스트
✅ 컨벤션 체크리스트
📌 주안점
저번 리뷰 때 언급해주신 것들 중에 BaseEntity를 선택적으로 상속받은 게 BaseEntity의 모든 필드값을 필요로 하지 않고 일부만 사용하는 경우에 상속을 받지 않고 필요한 부분만 선언해주는 식으로 작성을 했는데 이렇게 해도 괜찮을지 궁금합니다!