Spring/API3 [jpashop] API 개발 고급 정리 API 개발 고급 정리 엔티티 조회 엔티티를 조회해서 그대로 반환: V1 - 절대 사용해선 안된다. API 스펙이 바뀔 수 있음. 엔티티 조회 후 DTO로 변환: V2 - API 스펙에 맞는 DTO 사용 !! 페치 조인으로 쿼리 수 최적화: V3 - V2 성능이 나오지 않을 경우(여러 테이블 조인) 패치 조인 사용 컬렉션 페이징과 한계 돌파: V3.1 컬렉션은 패치 조인시 페이징이 불가능 ToOne 관계는 패치 조인으로 쿼리 수 최적화 컬렉션은 패치 조인 대신에 지연 로딩을 유지하고, hibernate.default_batch_fetch_size, @BatchSize 로 최적화 DTO 직접 조회 JPA에서 DTO를 직접 조회: V4 컬렉션 조회 최적화 - 일대다 관계인 컬렉션은 IN 절을 활용해서 메모리.. 2021. 3. 29. [API] 컬렉션 조회 최적화 xToOne 관계는 패치조인 등으로 성능 최적화를 할 수 있다. 컬렉션인 일대다 관계 (OneToMany)를 조회하고 최적화하는 방법은 무엇일까! 버전 1. 엔티티를 직접 노출하는 방식은 피해야한다. 버전 2. DTO를 만들어서 사용하는 방식 package jpabook.jpashop.api; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderItem; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.. 2021. 3. 25. API 개발 기본 1. 엔티티라는 것은 여러 곳에서 쓰는 것이다. 이후에 ex) 필드명이 바뀌면 API 스펙 자체가 바뀌어 버리는 문제가 발생한다. API 스펙을 위해 엔티티를 파라미터로 직접적으로 받아서것이다. 이후에 ex) 필드명이 바뀌면 API 스펙 자체가 바뀌어 버리는 문제가 발생한다. API 스펙을 위해 엔티티를 파라미터로 직접적으로 받아서 사용하지말고, 별도의 DTO를 사용하는 것이 좋다. 반드시...반드시 꼭 API스펙에 맞는 DTO를 생성해서 만들어야 나중에 유지보수성도 좋다. 2. REST API 스타일을 검색해서 확인해보아라. 2021. 3. 24. 이전 1 다음