일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- gcm 푸시 번역
- 도메인 주도 개발
- 디자인패턴
- APNS
- 푸시 번역
- git
- 자바스크립트
- Java
- 웹사이트최적화기법
- 푸시
- 웹사이트 성능
- notification
- GCM
- nginx설정
- Push
- GCM 번역
- Design Pattern
- nginx
- graphql
- 웹사이트성능
- php
- 카프카 트랜잭션
- JPA
- 카프카
- 성능
- ddd
- kafka
- 페이스북 번역
- nginx설치
- Today
- Total
목록JPA (14)
간단한 개발관련 내용
코틀린 언어 기반으로 JPA 엔티티의 id 필드를 생성자에 포함시키는 방식과 별도로 필드로 선언하고 protected set을 사용하는 방식은 몇 가지 차이점이 있습니다. 각각의 장단점과 사용 사례를 비교해보겠습니다.1. id를 생성자에 포함시키는 방식@Entitydata class Car( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, val brand: String, val model: String)특징불변성: val로 선언되므로 생성 후 값이 변경되지 않아 객체가 불변(immutable)에 가까워집니다.초기화 간결성: id 필드도 생성자에서 초기화되므로 Kotlin의 데이터 클래스..
16.1 트랜잭션과 락16.1.1 트랜잭션과 격리 수준트랜잭션은 ACID를 보장해야한다.원자성 (작업에 대한 것) - Atomicity트랜잭션 내의 작업은 모두 성공하거나 실패해야한다일관성 (데이터에 대한 것) - Consistency모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 한다격리성 (트랜잭션에 대한 것) - Isolation트랜잭션의 분리 및 보장동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 한다.지속성 (데이터에 대한 것)- Durability트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데..
예외처리엔터티 비교프록시 심화 주제성능 최적화N+1 문제읽기 전용 쿼리 최적화배치처리SQL 쿼리 힌트트랜잭션을 지원하는 쓰기 지연과 성능 최적화15.1 예외처리15.1.1 JPA 표준 예외 정리JPA 표준 예외들은 RumtimeException 을 상속하는 javax.persistence.PersistenceException의 자식 클래스들이다.트랜잭션 롤백을 표시하는 예외심각한 예외로 복구해서는 안되고javax.persistence.RollbackException 예외가 발생한다.트랜잭션 롤백을 표시하지 않는 예외심각한 예외가 아니라 판단에 따라 복구해도 된다15.1 .2 스프링 프레임워크의 JPA 예외 전환데이터 접근 계층에 대한 예외를 추상화해서 개발자에게 제공15.1 .3 스프링 프레임워크에 JP..
컬렉션 : 다양한 컬렉션과 특징을 설명한다컨버터 : 엔터티의 데이터를 변환해서 데이터베이스에 저장한다리스너 : 엔터티에서 발생한 이벤트를 처리한다엔터티 그래프 : 엔터티를 조회할 때 연관된 엔터티들을 선택해서 함께 조회한다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 값 타입과 불변 객체..