Skip to content

[7주차/그린] 워크북 제출합니다#42

Merged
chazy-d merged 9 commits into
UMC-Inha:green/mainfrom
chazy-d:main
May 19, 2026
Merged

[7주차/그린] 워크북 제출합니다#42
chazy-d merged 9 commits into
UMC-Inha:green/mainfrom
chazy-d:main

Conversation

@chazy-d
Copy link
Copy Markdown

@chazy-d chazy-d commented May 14, 2026

✅ 실습 체크리스트

  • 이론 학습을 완료하셨나요?
  • 미션 요구사항을 모두 이해하셨나요?
  • 실습을 수행하기 위한 공부를 완료하셨나요?
  • 실습 요구사항을 모두 완료하셨나요?

✅ 컨벤션 체크리스트

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

@chazy-d chazy-d requested a review from YoungJJun May 14, 2026 06:10
@chazy-d chazy-d self-assigned this May 14, 2026
@chazy-d chazy-d linked an issue May 14, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Collaborator

@YoungJJun YoungJJun left a comment

Choose a reason for hiding this comment

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

7주차 피드백

  1. 모든 미션 잘 구현해주셨습니다!

  2. 페이지네이션과 Request Body 에 대한 Validation Check 또한 적절하고, 이를 처리하는 GeneralExceptionAdvice도 잘 구현해주셨습니다.

  3. @RequestParam , @PathVariable 에 대한 Valid 체크

    미션 내용에 @RequestBody 에 대한 검증만 언급되어 있어서 이 부분만 진행된 것 같아요.

    • pageNumber, pageSize (미션 조회)
    • size (리뷰 조회)

    위 파라미터에 대해 default 값만 설정되어 있는 것 같습니다. @Min, @Max 같은 검증도 추가해주시면 좋을 것 같아요~

  4. (추가) 너무 잘 해주셔서 특별히 피드백할 부분이 없어서 찾아봤어요!

    MemberMissionRepository.findByMemberAndStatusesWithOffset() 에서 join fetchPageable을 함께 사용하는데 이 부분에 이슈가 있다고 합니다. WARN : HHH000104

    일대다 또는 다대다 컬렉션을 JOIN FETCH + Pageable 사용하면 Hibernate가 페이징을 DB에서 처리하지 않고 메모리에서 처리하게 됩니다.

    여기서 데이터 양이 많으면 네트워크 부하, 메모리 사용량 증가, 최악의 경우 OOM 가능성이 있다고 합니다.

    해결법은 @EntityGraph@BatchSize로 개선할 수 있는 것 같은데 이 부분은 저도 더 찾아봐야 할 것 같아요.

    현재 MemberMission이 충분히 데이터가 많아질 수 있는 상황인 것 같아서 관련 내용 한 번 찾아보시면 좋을 것 같습니다 🙂


그린 7주차도 수고하셨습니다! 피드백 4번 내용은 저도 처음 알게된 내용이라 신기하네용. 다음주도 화이팅해주세요~ 💯

@chazy-d
Copy link
Copy Markdown
Author

chazy-d commented May 18, 2026

@YoungJJun

피드백 감사합니다!

말씀해주신 RequestParam/PathVariable 검증은 @min, @max, @positive를 추가하고, 관련 validation 예외도 공통 응답으로 처리하도록 해보았습니다!

fetch join + Pageable 부분도 다시 확인해봤습니다. 기존 쿼리는 MemberMission -> Mission -> Store의 to-one fetch join이라 컬렉션 fetch join 케이스와는 다르지만, 피드백 반영과 학습 목적상 Pageable 쿼리에서는 id만 먼저 조회하고 이후 Mission/Store를 fetch join하는 2-step query로 한번 변경해보앗습니다. 관련해서 정리한 내용은 mission-notes/7th-join-fetch-pageable-feedback.md에 남겨두었습니다!

6주차 Fetch Join 키워드 정리 에서 관련 내용을 정리했었는데, 그냥 그렇구나~ 하고 넘어갔던 내용이라 한번 정리해보았습니다!

hasNext
);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

서비스 로직을 역할별로 private 메서드로 분리하신 점이 좋았습니다. 읽는 입장에서 로직을 따라가기 쉬웠고, 관련 책임이 따로 빠져 있어서 유지보수에도 유리해 보이네요! 저도 다음에 반영하도록 하겠습니다!

@chazy-d chazy-d merged commit 069defa into UMC-Inha:green/main May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chapter07_API 설계 심화 - 페이징

3 participants