DTO4 API 조회 성능 최적화 - 컬렉션(DTO 직접 조회) 0. 개요 - 이번 포스팅에서는 DTO를 직접 사용하여 컬렉션을 조회하는 방식에 대해서 알아보자. 1. DTO 직접 조회 준비 a) DTO 직접 조회의 의미 - 단일 조회 시 DTO를 직접 사용한 조회 방법과 동일하게 컬렉션도 DTO를 사용하여 직접 조회할 수 있다. - DTO 직접 조회 방식의 핵심은 Entity를 전혀 사용하지 않고 오직 DTO만을 이용하여 데이터를 받아오는 것이다. - 즉, Entity를 조회하고 그 데이터를 이용하여 DTO를 생성 및 반환하는 작업이다. - 언뜻 보면 DTO 변환 방식과 특별한 차이점을 못 느낄 수도 있다. - 그러나 DTO 직접 조회 방식은 API 메서드에서 오직 DTO만을 사용한다는 것이 특징이다. b) 준비 작업 확인 - 우선 DTO 변환을 이용한 조회 메서드.. 2022. 6. 4. API 조회 성능 최적화 - 컬렉션(Fetch Join, distinct) 0. 개요 - 이전 포스팅에서 DTO 변환을 이용한 컬렉션 조회 방법을 알아보았다. - DTO 변환 방법을 사용하여 컬렉션 조회 시, 다수의 SQL 문이 발행된다는 문제점을 확인하였다. - 이 문제를 해결하기 위해 Fetch Join을 이용한 컬렉션 조회 방법을 알아보자. 1. DTO 변환 + Fetch Join a) Fetch Join 쿼리 작성 - 우선 Fetch Join을 이용하는 쿼리를 작성해보자. - 쿼리는 다음과 같다. public List findAllWithItem() { return em.createQuery("select o from Order o " + "join fetch o.member " + "join fetch o.delivery " + "join fetch o.orderIte.. 2022. 6. 2. API 조회 성능 최적화 - DTO 직접 조회 0. 개요 - 일반적으로 JPA에서 조회를 수행할 때, Entity로부터 조회된 결과를 DTO를 통해 전달한다. - 그러나 이러한 과정을 스킵하고 바로 DTO를 통해 조회할 수 있는 방법은 없을까? - 이번 포스팅에서는 DTO를 통해 직접 조회 방법에 대해 알아보자. 1. DTO를 통한 직접 조회 - 이전 포스팅에서는 Entity의 조회 결과를 DTO에 넘겨서 DTO 객체를 반환하는 방법으로 조회하였다. - DTO를 통한 직접 조회 방법은 조회 결과를 DTO 객체로 직접 반환하는 방법이다. a) DTO 클래스 생성 - 다음과 같이 DTO 클래스를 생성한다. @Data public class SimpleOrderQueryDto { private Long orderId; private String name;.. 2022. 5. 30. API 조회 성능 최적화 - DTO 변환 방식(Fetch Join) 1. 조회 API에서 DTO를 사용하는 이유 - 이전 포스팅에서 Entity를 직접 사용한 조회 API를 구성하는 방법에 대해 알아보았다. - Entity를 직접 노출하는 방식은 Entity의 내용이 변경됐을 때, API 스펙에 직접적인 영향을 미치기 때문이다. - 그러므로 Entity 대신 DTO를 사용하여 이를 해결한다. 2. DTO를 이용한 조회 API 구성 방법 - API에서 DTO를 구성하는 방식은 매우 간단하다. - 기존에 Entity가 직접 사용된 부분을 DTO로 교체하면 된다. - 다음 코드를 살펴보자. @RestController @RequiredArgsConstructor public class OrderSimpleApiController { private final OrderRepos.. 2022. 5. 30. 이전 1 다음