728x90 반응형 Dev170 [JPA] JPA 활용 II - API 개발 고급 (지연로딩과 조회성능 최적화) 목표 간단한 주문을 조회하는 기능을 만들면서 지연로딩 때문에 발생하는 성능 문제 해결 @ManyToOne, @OneToOne 관계 성능 최적화 V1. 엔티티 직접 노출 기본 조회 소스 구현 package jpabook.jpashop.api; /** * * xToOne(ManyToOne, OneToOne) 관계 최적화 * Order * Order -> Member * Order -> Delivery * */ @RestController @RequiredArgsConstructor public class OrderSimpleController { private final OrderRepository orderRepository; @GetMapping(value="/api/v1/simple-orders") p.. 2021. 10. 4. [JPA] JPA 활용 II - API 개발 고급 (준비) 등록, 수정에 비해 조회 기능은 성능 문제가 많이 발생한다. 앞으로 학습할 성능 최적화를 통해 문제를 해결해보자 샘플 데이터 생성 조회 성능 최적화 실습을 위한 샘플 데이터를 생성하는 클래스를 생성해보자 데이터 생성 클래스 package jpabook.jpashop; import javax.annotation.PostConstruct; import javax.persistence.EntityManager; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import jpabook.jpashop.domain.Address; import jpabook.j.. 2021. 9. 29. [JPA] JPA 활용 II - API 개발 기본 회원 등록, 수정, 조회 API 개발을 학습해보자 준비사항 포스트맨 설치 API 테스트 툴을 설치한다. (https://www.postman.com/) 포스트맨 설정 REST API 테스트 시 기본적인 설정 회원등록 API 엔티티를 사용하는 방식과 DTO를 사용하는 방식을 각각 구성해보자 엔티티 사용 회원 컨트롤러 구성 package jpabook.jpashop.api; import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; /** * 등.. 2021. 9. 29. [JPA] JPA 활용 II - 강좌 소개 강좌명 실전! 스프링 부트와 JPA활용 2 - API개발과 성능 최적화 강의목표 API 기능 개발 및 JPA 극한의 성능 최적화를 할 수 있도록 하는 것으로 복잡한 예제를 6단계로 나눠 성능 튜닝 진행 커리큘럼 API 개발 기본 : 기본적인 등록, 수정, 조회용 REST API를 개발 API 개발 고급 : 실무에서 JPA로 조회용 API를 개발할 때 주의점과 올바른 설계방향 제시, JPA 지연로딩 이슈 해결 및 단계별로 다양한 성능 최적화 방안 설명 실무 필수 최적화 : 스프링 부트와 JPA를 사용할 때 주의해서 사용하지 않으면 장애로 이어질 수 있는 OSIV 내용 학습 프로젝트 환경 스프링 부트 JPA Gradle Hibernate Thymeleaf H2 Database 참고 https://www.in.. 2021. 9. 29. [JPA] JPA 활용 I - 웹 계층 개발 (2) 상품등록 상품등록 폼 객체 package jpabook.jpashop.controller; @Getter @Setter public class BookForm { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn; } 상품 컨트롤러 구성 package jpabook.jpashop.controller; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new".. 2021. 9. 28. 이전 1 2 3 4 5 6 ··· 34 다음