일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- java
- web
- frontend
- javascript
- 바닐라js
- 매핑
- 영속성 컨텍스트
- 일대다
- 다대일
- AWS
- 플러시
- 단방향
- python
- Django
- css
- 노마드코더
- 트랜잭션
- clonecoding
- SBERT
- JS
- TODO
- 장고
- 프론트엔드
- 장고독학
- html
- React
- nomadcoder
- ORM
- 다대다
- Today
- Total
목록트랜잭션 (3)
꿈꾸는 새벽하늘
1. 트랜잭션과 락 1) 트랜잭션과 격리 수준 트랜잭션은 ACID라 칭하는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)을 보장해야 한다. 원자성: 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공하든가 모두 실패해야 한다. 일관성: 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이에서 정한 무결성 제약 조건을 항상 만족해야 한다. 격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 격리 수준을 선택할 수 있다. 지속성: 트랜잭션을 성공적으로 끝내면..
1. 예외 처리 JPA 표준 예외 트랜잭션 롤백을 표시하는 예외 javax.persistence.EntityExistsException javax.persistence.EntityNotFoundException javax.persistence.OptimisticLockException javax.persistence.PessimisticLockException javax.persistence.RollbackException javax.persistence.TransactionRequiredException 트랜잭션 롤백을 표시하지 않는 예외 javax.persistence.NoResultException javax.persistence.NonUniqueResultException javax.persist..
1. 트랜잭션 범위의 영속성 컨텍스트 스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용한다. 이 전략은 트랜잭션 범위와 영속성 컨텍스트의 생존 범위가 같다는 것을 의미한다. 즉, 트랜잭션을 시작할 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다. 그리고 같은 트랜잭션 안에서는 항상 같은 영속성 컨텍스트에 접근한다. 스프링 프레임워크를 사용하면 보통 비즈니스를 시작하는 서비스 계층에 @Transaction 어노테이션을 선언해서 트랜잭션을 시작한다. 외부에서는 단순히 서비스 계층의 메소드를 호출하는 것처럼 보이지만 이 어노테이션이 있으면 호출한 메소드를 실행하기 직전에 스프링의 트랜잭션 AOP가 먼저 동작한다. 스프링 트랜잭션 AOP는 대상 메소드를 호출하기..