인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

sjdzn1192623's profile image
sjdzn1192623

asked

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

Order Lookup V5: Direct DTO Lookup in JPA - Optimized Collection Lookup

강사님 질문 드립니다!

Written on

·

182

1

강의 잘 듣고 있습니다!

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

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

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

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

JPAjavaspringspring-boot

Answer 1

2

yh님의 프로필 이미지
yh
Instructor

안녕하세요. sjdzn119님

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

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

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

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

감사합니다.

sjdzn1192623's profile image
sjdzn1192623

asked

Ask a question