Spring/[인프런] 실전! 스프링 부트와 JPA 활용2

    API 개발 고급 - 실무 필수 최적화

    API 개발 고급 - 실무 필수 최적화

    API 개발 고급 - 실무 필수 최적화 OSIV(Open Session In View)와 성능 최적화 OSIV와 성능 최적화 Open Session In View: 하이버네이트에선 Seesion Open EntityManager In View: JPA에선 EntityManager (관례상 OSIV라 한다.) OSIV ON spring.jpa.open-in-view : true -> 기본값 WARN 7781 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view r..

    API 개발 고급 - 컬렉션 조회 최적화

    API 개발 고급 - 컬렉션 조회 최적화

    API 개발 고급 - 컬렉션 조회 최적화 주문 조회 V1: 엔티티 직접 노출 주문 조회 V2: 엔티티를 DTO로 변환 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파 주문 조회 V4: JPA에서 DTO 직접 조회 주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화 주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화 주문내역에서 추가로 주문한 상품 정보를 추가로 조회하자.(OneToMany)를 조회하고, 최적화하는 방법을 알아보자. Order 기준으로 컬렉션인 OrderItem 와 Item 이 필요하다. 앞의 예제에서는 toOne(OneToOne, ManyToOne) 관계만 있었다. 이번에..

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화 간단한 주문 조회 V1: 엔티티를 직접 노출 간단한 주문 조회 V2: 엔티티를 DTO로 변환 간단한 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 간단한 주문 조회 V4: JPA에서 DTO로 바로 조회 주문 + 배송정보 + 회원을 조회하는 API를 만들자 지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자. 참고: 지금부터 설명하는 내용은 정말 중요합니다. 실무에서 JPA를 사용하려면 100% 이해해야 합니다. > 안그러면 엄청난 시간을 날리고 강사를 원망하면서 인생을 허비하게 됩니다. 간단한 주문 조회 V1: 엔티티를 직접 노출 ( 엔티티 노출은 사용 권장 X, 꼭 필요한 정보만 노출 ) OrderSimpleApiControl..

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샙플 데이터 입력 조회용 샘플 데이터 입력 조회용 샘플 데이터 입력 API 개발 고급 설명을 위해 샘플 데이터를 입력하자. userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK package myjpabook.jpashop; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.*; import myjpabook.jpashop.domain.item.Book; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactiona..

    API 개발 기본

    API 개발 기본

    API 개발 기본 회원 등록 API 회원 수정 API 회원 조회 API postman 설치 (https://www.getpostman.com) 회원 등록 API package myjpabook.jpashop.api; import lombok.Data; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.Member; import myjpabook.jpashop.service.MemberService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org..