entity

실무에서 너무 성능이 안 나와서 튜닝을 해야 할 경우, 코드를 확인해 보면 대부분 아래에 나열해 둔 문제가 자주 발생한다고 한다.지연 로딩과 조회 성능 최적화컬렉션 조회 최적화페이징과 한계 돌파OSIV와 성능 최적화등록 및 수정에선 거의 문제가 발생하지 않고, 90% 정도 조회할 때 성능 문제가 발생한다. 따라서 조회용 샘플 데이터를 입력한 뒤 각 문제에 맞춰 API 성능을 최적화하는 방법을 학습한다. 이번 섹션에선 주문 내역에서 추가로 주문한 상품 정보를 추가로 조회하는 API를 만든다. Order 기준으로 컬렉션인 OrderItem과 Item이 필요하다.이전 섹션에서는 xToOne 관계만 있었다. 이번에는 컬렉션인 일대다 관계(OneToMany)를 조회하고, 최적화하는 방법을 학습한다. 참고이전 섹션..
실무에서 너무 성능이 안 나와서 튜닝을 해야 할 경우, 코드를 확인해 보면 대부분 아래에 나열해 둔 문제가 자주 발생한다고 한다.지연 로딩과 조회 성능 최적화컬렉션 조회 최적화페이징과 한계 돌파OSIV와 성능 최적화등록 및 수정에선 거의 문제가 발생하지 않고, 90% 정도 조회할 때 성능 문제가 발생한다. 따라서 조회용 샘플 데이터를 입력한 뒤 각 문제에 맞춰 API 성능을 최적화하는 방법을 학습한다. 이번 섹션에선 주문 및 배송 정보와 회원을 조회하는 API를 만들면서, 지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해 본다.참고실무에서 JPA를 사용하려면 지금부터 설명하는 내용을 100% 이해해야 한다. 안 그러면 엄청난 시간을 날리게 될 수도 있다. 간단한 주문 조회 V1: 엔티티를 직접 노..
이번 섹션에선 객체와 테이블의 연관관계 차이를 이해한 뒤, 객체의 참조와 테이블의 외래 키를 매핑하는 방법에 대해 학습한다. 아래에 있는 핵심 용어만 잘 이해해 두면 된다.방향(Direction): 단방향, 양방향다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)💫연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인이 필요함 1. 연관관계의 필요성객체지향스러운 설계를 이해하기 위해 아래 책(객체지향의 사실과 오해)과 를 참고하면 좋다.객체지향 설계의 목표는자율적인 객체들의 협력 공동체를 만드는 것이다.- 조영호(객체지향의 사실과 오해) - 객체의 참조와 테이블의 외래 키아래와 같은 예제 시나리오를 생각해 보자.1. 회원과 팀이 존재한다.2...
1. 객체와 테이블 매핑@Entity@Entity 애노테이션이 붙은 class는 JPA가 관리하며, 엔티티라고 한다. 따라서 JPA를 사용해서 테이블과 매핑할 class는 해당 애노테이션을 필수로 붙여야 한다. 아래는 JPA 스펙상 꼭 지켜야 할 주의사항이다.기본 생성자(파라미터가 없는 public 또는 protected 생성자)가 필수로 있어야 한다.JPA 리플렉션 등의 기술을 써서 객체를 프록시하는 경우에 필요하기 때문이다.final class, enum, interface, inner class엔 사용할 수 없다.내가 DB에 저장할 필드에 final을 사용하면 안 된다.@Entity(name = "Member") // 기본값 Memberpublic class Member { ...} 속성 정리..
JPA에 대한 개념 설명(이전 강의)을 듣지 않고 이번 강의를 먼저 들으면서 JPA 활용부터 공부하고 있다. 따라서 이해가 되지 않는 부분이 엄청 많기 때문에 설명이나 코드는 이해한 부분만 적고 넘어가려고 한다. 나중에 JPA 개념 강의를 듣고 다시 복습하면서 설명을 채워 넣을 예정이다. 1. 도메인 모델과 테이블 설계요구사항 분석간단한 쇼핑몰을 만들어 볼 예정이다. 핵심 기능은 아래와 같다.회원 기능회원 등록 (POST)회원 목록 조회 (GET)상품 기능상품 등록 (POST)상품 수정 (PATCH || PUT)상품 목록 조회 (GET)주문 기능상품 주문 (POST)주문 내역 조회 (GET)주문 취소 (DELETE)기타 요구사항상품은 재고 관리가 필요하다.상품의 종류는 도서, 음반, 영화가 있다.상품을 ..