인프런 커뮤니티 질문&답변

최성규님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화

일대N 컬렉션 페치 조인시의 페이징이 '불가능'?

해결된 질문

21.03.15 16:26 작성

·

290

0

안녕하세요.

영한님은 강의에서 컬렉션 페치 조인으로는 페이징이 불가능하다고 말씀하셨는데요, 빌드와 실행까지는 어쨌든 되니 불가능하다는 표현은 좀 안맞지 않을까요?

다만, 매우 위험하고 의도한 결과를 못낼 수 있기 때문에 사실상 쓰지 않는 것이 좋다 정도로 이해하는 게 적절한 것 같아서 소견을 말씀드리고 여쭙습니다.  _ _;;

읽어 주셔서 감사합니다.

답변 1

3

최성규님의 프로필 이미지
최성규
질문자

2021. 03. 15. 16:49

소심한 질문에 과감한 자답입니다. - 강의 다음 장(V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파)에 솔루션이 있는 것 같습니다.

일과 N 중 일 기준 페이징 된 결과를 얻는 것이 목적인데, 메모리 소팅 후 결과는 N(컬렉션쪽) 기준 페이징이 된다. 즉, 기능의 본질 목표를 얻어낼 수 없다는 측면에서 '불가능'이라는 표현이 틀리지 않습니다.

김영한님의 프로필 이미지
김영한
지식공유자

2021. 03. 15. 23:48

ㅎㅎ 네 성규님 의견 감사합니다.

사실 실무에서 저걸 사용하면 바로 장애로 이어지기 때문에 불가능이라고 적었습니다^^; (데이터가 10만건만 되어도 바로 Out of Memory가 나올 가능성이 높습니다. ㄷ ㄷ ㄷ)