일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카프카
- Java
- 자바스크립트
- 카프카 트랜잭션
- Design Pattern
- nginx설정
- ddd
- 웹사이트최적화기법
- 페이스북 번역
- 디자인패턴
- graphql
- APNS
- 웹사이트성능
- 푸시
- gcm 푸시 번역
- kafka
- 성능
- 푸시 번역
- notification
- php
- 웹사이트 성능
- JPA
- git
- nginx
- GCM 번역
- GCM
- Push
- nginx설치
- 도메인 주도 개발
- Today
- Total
목록2024/11/19 (13)
간단한 개발관련 내용
컬렉션 : 다양한 컬렉션과 특징을 설명한다컨버터 : 엔터티의 데이터를 변환해서 데이터베이스에 저장한다리스너 : 엔터티에서 발생한 이벤트를 처리한다엔터티 그래프 : 엔터티를 조회할 때 연관된 엔터티들을 선택해서 함께 조회한다14.1 컬렉션OneToMany, ManyToMany를 사용해서 일대다나 다대다 엔터티 관계를 매핑할 때ElementCollection을 사용해서 값 타입을 하나 이상 보관할 때자바 컬렉션의 특징 (중복, 순서)Collection자바가 제공하는 최상위 컬렉션이다. 하이버네이트는 중복을 허용하고 순서를 보장하지 않는다고 가정한다.Set중복을 허용하지 않는 컬렉션이다. 순서를 보장하지 않는다.List순서가 있는 컬렉션이다. 순서를 보장하고 중복을 허용한다.Mapkey, value 구조로 되..
13.1 트랜잭션 범위의 영속성 컨텍스트13.1.1 스프링 컨테이너의 기본전략 💡스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용한다.이 전략은 이름 그대로 트랜잭션의 범위와 영속성 컨텍스트의 생존 범위가 같다는 뜻이다. 트랜잭션을 시작할 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다. 그리고 같은 트랜잭션 안에서는 항상 같은 영속성 컨텍스트에 접근한다.@Transactional 어노테이션이 있으면 호출한 메서드를 실행하기 직전에 스프링의 AOP가 먼저 동작한다.트랜잭션이 같으면 같은 영속성 컨텍스트를 사용한다트랜잭션이 다르면 다른 영속성 컨텍스트를 사용한다같은 엔터티매니저를 사용해도 쓰레드 마다 생성된 트랜잭션에 따라 다르다13.2 준영속 상태와 지..
9.1 기본값 타입9.2 임베디드 타입(복합 값 타입)@Embeddable : 값 타입을 정의하는 곳에 표시클래스 선언 위에@Embedded : 값 타입을 사용하는 곳에 표시멤버변수에임베디드 타입은 기본 생성자가 필수 💡하이버네이트는 임베디드 타입을 컴포넌트(components)라고 한다.9.2.1 임베디드 타입과 테이블 매핑9.2.2 임베디드 타입과 연관관계9.2.3 @AttributeOverride: 속성 재정의같은 타입의 멤버변수가 @Embedded 될 때, @AttributeOverride를 사용@Embedded Address home, @Embedded Address company9.2.4 임베디드 타입과 null임베디드 타입이 null이면 매핑된 모든 값도 null9.3 값 타입과 불변 객체..
프록시와 즉시로딩, 지연로딩영속성 전이와 고아 객체8.1 프록시엔터티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데 이것을 지연로딩이라 한다. 그런데 지연로딩 기능을 사용하려면 실제 엔터티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라 한다. 💡JPA 표준 명세는 지연 로딩의 구현 방법을 JPA 구현체에 위임했따. 따라서 지금부터 설명할 내용은 하이버네이트 구현체에 대한 내용이다. 하이버네이트는 지연로딩을 지원하기 위해 프록시를 사용하는 방법과 바이트코드를 수정하는 두 가지 방법을 제공하는데 바이트코드를 수정하는 방법은 설정이 복잡하므로 여기서는 별도의 설정이 필요 없는 프록시에 대해서만 알아보겠다.8.1.1 프록시 기초em.find(M..
7.1 상속 관계 매핑supertype subtype Relationship각각의 테이블로 변환조인전략통합 테이블로 변환단일 테이블 전략서브타입 테이블로 변환구현 클래스마다 테이블 전략7.1.1 조인 전략부모테이블의 키를 받아서 기본키 + 외래키 복합키를 갖게 된다장점테이블이 정규화된다외래키 참조 무결성 제약 조건을 사용할 수 있다저장 공간을 효율적으로 사용할 수 있다단점조회할 때 조인이 많이 사용되므로 성능이 저하될 수 있다조회 쿼리가 복잡하다데이터를 등록할 때 INSERT SQL을 두 번 실행한다.7.1.2 단일 테이블 전략구분칼럼(DTYPE)으로 어떤 자식 데이터가 저장되었는지 구분한다장점조인이 필요없으므로 일반적으로 조회 성능이 빠르다조회 쿼리가 단순하다단점구분 칼럼을 꼭 사용해야 한다따라서 @D..
다중성다대일단방향, 양방향일대다단방향, 양방향일대일주 테이블 단방향, 양방향대상 테이블 단방향, 양방향다대다단방향, 양방향단방향, 양방향연관관계의 주인연관관계의 주인은 mappedBy 속성을 사용하지 않는다 6.1 다대일6.1.1 다대일 단방향 [N:1]6.1.2 다대일 양방향 [N:1, 1:N]양방향은 외래 키가 있는 쪽이 연관관계의 주인이다양방향 연관관계는 서로를 참조해야 한다6.2 일대다일대다는 다대일의 반대로 Collection, List, Set, Map 중에 하나를 사용해야 한다6.2.1 일대다 단방향 [1:N]한 팀이 여러 회원을 참조하는데 회원은 팀을 참조하지 않을 때일대다 단방향 관계를 매핑할 때는 @JoinColumn을 명시해야 한다. 그렇지 않으면 JPA는 연결 테이블을 중간에 두고 ..