강의

멘토링

로드맵

Inflearn brand logo image

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

sjdzn119님의 프로필 이미지
sjdzn119

작성한 질문수

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

주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화

강사님 질문 드립니다!

작성

·

187

1

강의 잘 듣고 있습니다!

실제 실무에서 JPA를 사용해서 조회할때,

조회하는 데이터 양이 많을때는 DTO 를 직접 조회해서 사용하고

조회하는 데이터 양이 많지 않을때는 페치조인을 사용하여 DTO를 반환하는 방식으로 사용하나요 ? ?

아니면 실무에서 따로 내부적으로 조회하는 쿼리는 이렇게 사용하자~ 라고 하는 내부규칙에 있을까요 ?? 

답변 1

2

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

안녕하세요. sjdzn119님

데이터의 양을 기준으로 한다기 보다는 비즈니스 로직의 재활용성과 성능 사이에 미묘한 부분이 있습니다.

페치조인을 사용하여 DTO를 반환하는 방식은 리포지토리 로직을 재활용할 가능성이 높습니다. (반 가공 상태)

반면에 DTO로 직접 조회하면 이미 가공이 완전 끝난 상태로 조회하기 때문에 재활용 가능성이 적습니다.

따라서 이런 부분에 대한 고민이 필요합니다. 추가로 두가지가 극적으로 성능 차이가 나지는 않기 때문에, 그리고 상황마다 달라서 성능이 실제 많이 안나올 때 최적화가 꼭 필요하면 최적화를 시도합니다.

감사합니다.

sjdzn119님의 프로필 이미지
sjdzn119

작성한 질문수

질문하기