인프런14 지연로딩과 조회 성능 최적화 쿼리 방식 선택 권장 순서 1. 우선 엔티티를 DTO 로 변환하는 방법을 선택한다. 2. 필요하면 패치 조인으로 성능을 최적화 한다. (보통 여기서 해결) 3. DTO로 직접 조회하는 방법을 사용 4. JPA가 제공하는 네이티브 SQL이나 스프링 JDBC Template을 사용해서 SQL을 직접 사용한다. 엔티티에 데이터 직접 조회 API @GetMapping("/api/v1/simple-orders") public List orderV1(){ List all = orderRepository.findAllByString(new OrderSearch()); for (Order order:all){ order.getMember().getName(); // Lazy 강제 초기화 order.getDelivery.. 2022. 7. 29. 회원 API 조회 개발 API 조회 개발 시 일반적인 간단 방법 하지만 이렇게 쓸 경우 응답 값으로 엔티티를 직접 노출하게 된다. 문제점 엔티티의 모든 값이 노출된다. 응답 스펙을 맞추기 위한 로직이 추가된다(@JsonIgnore, 별도의 뷰 로직 등등) 엔티티가 변경되면 API 스펙이 변경된다. API 조회 수정 엔티티를 조회하는 방법은 똑같지만 외부 MemberDto 를 따로 만들어주고 Result를 통해 JSON 데이터의 추가와 수정이 가능할 수 있도록 개발이 가능하다. 강의 : 인프런 실전! 스프링 부트와 JPA 활용2 (김영한) https://inf.run/5NP4 2022. 7. 26. API 개발 기본 API 개발 시 엔티티로 직접받는 경우 Member 엔티티를 이용해 member 의 값을 직접 받을 경우엔, 엔티티에 값이 변경이 생길 경우 API에 대해서 문제가 생길 확률이 높고 데이터에 대한 관리도 어려워져 불안정하다. API 개발 시 별도의 DTO를 이용해 받는 경우 CreateMemberRequest라는 별도의 DTO를 생성 해 데이터를 받은 뒤, Member 엔티티에 넣어주게 되면, 엔티티에 변동이 생겼을 때에도 안정적이고 API 데이터에 대해 안정적인 데이터 수급이 가능하다. 💡 API는 들어오고 나가는걸 절때 엔티티를 사용하지 않는다! 강의 : 인프런 실전! 스프링 부트와 JPA 활용2 (김영한) https://inf.run/5NP4 2022. 7. 25. 상품 관리 기능 개발 상품 관리 기능 개발을 했다. 먼저 상품에 대한 객체를 Form으로 전달받을 Form 객체를 만든다. @Getter @Setter public class BookForm { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn; } 그리고 View 와 연결을 해주는 Controller 를 만들어준다. 첫번째는 상품 등록을 해주는 상품 등록 폼을 띄어주는 메서드 이다. @GetMapping("/items/new") public String createForm(Model model){ model.addAttribute("form",new.. 2022. 7. 20. 이전 1 2 3 4 다음