일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 객체지향생활체조원칙
- 클린코드
- 나만재밌는이야기
- 스프링5레시피
- 생각
- 1월의독서
- 프레디케이트
- 스프링구성
- 발음공부
- 달리기를말할때내가하고싶은이야기
- 잡담
- 람다
- JPA
- 메서드참조
- a-d
- 일빵빵알파벳파닉스
- 제대로알기
- 영속성컨텍스트
- ES6
- spring configuration
- Java8
- gulp
- 다시보기연습
- 모던자바인액션
- 영속성
- 일급함수
- 엔티티매핑
- 동작파라미터화
- es5
- spring5receipe
- Today
- Total
목록JPA (6)
notepad
인프런 - 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 엔티티 클래스 개발 다대다 관계는 사용하지 않는다. 일대다, 다대다 관계로 풀어낸다. @OneToMany - @ManyToOne 일대다, 다대일 양방향 관계에서의 연관관계 주인 정하기 외래키가 있는 쪽(다 쪽)을 연관 관계 주인으로 정한다 1:N 관계 예 - 회원(1):주문(N) 인 경우 ... @Entity class Member { //Member가 One, Order가 Many이다 //연관관계 One쪽에 mappedBy를 추가해준다. 추가되는 값은 Many 쪽에 선언된 필드명이다 @OneToMany(mappedBy = "member") private List orders = new ArrayList(); } @Entity @Ta..
인프런 - 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 API 개발 기본 API는 항상 DTO로 변환하여 값을 반환한다. 엔티티가 변해도 API 스펙이 변하지 않도록한다. (엔티티 직접 사용 X) DTO를 배열로 바로 반환하지 않게 래핑 후 반환한다 수정용 DTO는 등록에 비해 데이터가 제한적이기 때문에 별도로 가져가는게 좋다 커맨드와 쿼리를 분리하자 API 개발 고급 - 지연 로딩과 조회 성능 최적화 V3 toOne관계인 경우 fetch join 으로 최적화한다 기본으로 LAZY를 깔고 필요할 경우 fetch join으로 객체 그래프를 탐색해서 묶어서 한방에 가져오면 대부분의 성능 문제가 해결된다 API 개발 고급 - 컬렉션 조회 최적화 엔티티 조회 - DTO변환 ( V3.1) 지..
인프런 - 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 주문 + 배송정보 + 회원을 조회하는 API를 만들자 지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자. @PostConstruct > 와스가 올라가면서 빈이 생성 될 때 딱 한번 초기화 된다. > 빈이 여러번 초기화 되는 걸 방지, 의존성 주입 후 초기화를 수행하는 메서드이다 @Component > 컴포넌트 스캔을 위한 기본 어노테이션, 스프링 사용시 역할에 맞게 사용 @Repository @Service, @Controller V1 엔티티 직접 노출 (이렇게 쓰지 말자 방법) 양방향 연관관계에서 무한 루프가 일어나게 된다. -> @JsonIgnore 으로 처리 초기화되지 않은 객체를 하이버네이트는 프록시 객체로 생..
인프런 - 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 1. 등록 API 개발 API는 항상, 절대 엔티티를 사용하지 않는다. DTO를 만들어서 사용한다. -> 엔티티가 변해도 API 스펙이 변하지 않도록 한다. ==>> V1 엔티티를 Request Body에 직접 매핑 문제점 엔티티에 프레젠테이션 계층을 위한 로직이 추가된다. 엔티티에 API 검증을 위한 로직이 들어간다. (@NotEmpty 등등) 실무에서는 회원 엔티티를 위한 API가 다양하게 만들어지는데, 한 엔티티에 각각의 API를 위한 모 든 요청 요구사항을 담기는 어렵다. 엔티티가 변경되면 API 스펙이 변한다. 결론 API 요청 스펙에 맞추어 별도의 DTO를 파라미터로 받는다. Entity, DTO, 그 사이의 Mode..
인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 내용 정리 객체와 테이블 매핑 @Entity, @Table 컬럼 매핑 @Column 기본키 매핑 @Id 연관관계 매핑 @ManyToOne, @JoinColumn @Entity 엔티티가 붙은 클래스는 JPA가 관리. 엔티티라고한다. JPA를 사용해서 테이블과 매핑할 클래스는 엔티티 어노테이션이 필수이다 주의 : 기본 생성자는 필수(파라미터가 없는 public, protected 생성자) final클래스, enum, interface, inner class에는 사용 불가 저장할 필드에 final 사용 금지 @Table 엔티티와 매핑할 테이블 지정 name, catalog, schema, uniqueConstraints (DDL생성시 유니크..
인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 내용 정리 영속성 컨텍스트 ‘엔티티를 영구 저장하는 환경’ em.persist(entity); 를 통해 영속화 영속성 컨텍스트는 논리적인 개념으로 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. 1차 캐시(식별키, 엔티티, 스냅샷 저장) 과 쓰기 지연용 SQL저장소로 구성 엔티티 매니저 팩토리와 엔티티 매니저 웹 애플리케이션은 하나의 엔티티 매니저 팩토리(emf) 를 가지고, 요청이 일어날 때마다 emf에서 엔티티 매니저를 생성한다. 요청에 의해 생성된 엔티티 매니저는 디비 커넥션을 사용하여 DB 데이터에 접근한다. 엔티티 매니저는 DB의 트랜잭션 단위로 만들고 소멸된다 Persistence를 통해 EntityManagerFacto..