Rest APIHTTP 프로토콜을 통해 API를 설계하기 위한 아키텍쳐스타일 뛰어난 유연성개발자들 사이에 널리 알려진 약속GET : 조회, READPost : 등록 createPut : 변경 , Updatedelete : 삭제로 거의 사용함.수정은 PutMapping을
이 경우 문제점엔티티에 프레젠테이션 계층을 위한 로직이 추가됨.엔티티의 모든 값이 노출됨 -> 민감 정보도 노출 될 수 있음.실무에서는 같은 엔티티에 대해 API 용도에 따라 다양하게 만들어지는데 이걸 다 만족하기 어려움.어떤 곳은 addrress가 필요하고 어떤 곳은
이 경우 문제점엔티티에 프레젠테이션 계층을 위한 로직이 추가됨.엔티티의 모든 값이 노출됨 -> 민감 정보도 노출 될 수 있음.실무에서는 같은 엔티티에 대해 API 용도에 따라 다양하게 만들어지는데 이걸 다 만족하기 어려움.어떤 곳은 addrress가 필요하고 어떤 곳은
핵심으로 처리하는 문제지연로딩으로 발생하는 성능 문제를 해결하자.이 문제는 실무에서 JPA를 사용하려면 100% 으로 이해해야한다!V1 버전 :엔티티 직접 노출하는 경우Order 와 Member 는 ManyToOne 관계Order 와 delivery 는 OneToOn
Dto의 경우에는 협의를 통해서 스펙을 정하는 편현재 v2버전의 경우에는 Dto에 담을 것은주문번호주문한사람이름.주문시간주문상태배달주소5가지를 가져오자.그리고 List로 반환보단 Result로 감싸서 data로 반환해야하기 때문에 result를 따로 만들어서 추가완성된
주문 내역에서 추가로 주문한 상품 정보를 추가로 조회하는 경우Order기준으로 OrderItem과 Item 이 필요함.order 엔티티에 OrderItems와 OneToMany 관계이다. - 컬렉션 조회 최적화를 통해서 성능을 최적화 해보자.엔티티 직접노출의 경우이전에
DTO로 변환하지만 LAZY loding때문에 무수히 많은 쿼리가 발생하는 것을 fetch 조인을 통해서 최적화하자.OrderRepository에 fetch join 쿼리를 작성해준다. (Query dsl을 이용해서 짜는게 훨씬 좋다고 한다. -> 띄어쓰기를 통한 오류
SpringBoot를 만들어서 실행하는 경우 == > OSIV는 default값이 true로 켜져있는 상태로 진행한다.반환이 되는 시점 -> API 응답이 끝날 때 까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지함.이 이유때문에 지연로딩이 가능해진 것.컨트롤러, 뷰에
이전까지는 SpringdataJPA를 사용하지않고 만들었었다. 현재 강의는 간단하게 소개만 하는 정도로 따로 강의가 존재함.스프링 Data JPA는 JPA를 사용할 때 반복되는 코드를 자동화 해주는 역할을 한다.이 코드를 gradle 에 넣어주고 업데이트를 해줘야함.S