[ Transaction ]
데이터베이스 트랜잭션 : DB 관리 시스템에서의 상호작용의 단위
특징
- 원자성 : 모두 반영되거나 / 모두 반영되지 않아야 한다
- 일관성 : 처리 결과는 항상 일관성 있어야 한다
- 독립성 : 다른 트랜잭션의 작업에 끼어들 수 없다
- 지속성 : 결과는 영구적이어야 한다
연산
- Commit : 하나의 트랜잭션이 성공적으로 끝났으며 DB가 일관성 있는 상태로 유지될 때, 트랜잭션이 마무리 되었다는 것을 관리자에게 알리기 위함
- Rollback : 트랜잭션이 비정상적으로 끝난 경우, 트랜잭션을 다시 시작하거나 부분적으로 연산한 결과를 취소 시킨다
@Transactional
클래스 또는 매서드 위에 @Transactional을 붙이면, 트랜잭션 기능이 적용된 프록시 객체가 생성된다.
트랜잭션 성공 여부에 따라 commit / rollback이 이루어진다.
Transaction Manager
모든 트랜잭션 매니저는 Platform Transaction Manager 을 구현한다.
GetTransaction을 통해 프랜잭션의 경계를 설정하고, commit과 rollback을 처리한다.
종류
- DataSourceTransactionManager : JDBC 기반 라이브러리로 DB에 접근하는 경우 (DataSource가 Bean으로 등록되어야 한다)
- HibernateTransactionManager : 하이버네이트를 이용해 DB에 접근하는 경우
- JpaTransactionManager : JPA로 DB에 접근하는 경우
- JtaTransactionManager : 하나 이상의 DB나 글로벌 트랜잭션을 적용하는 경우
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #22. 4주차 강의 (0) | 2024.05.22 |
---|---|
[TIL] #21. spring 3주차 강의 (0) | 2024.05.21 |
[TIL] #19. Spring + JPA (0) | 2024.05.17 |
[TIL] #18. spring 2주차 강의 (0) | 2024.05.17 |
[TIL] #17. UseCase Diagram, ERD (0) | 2024.05.14 |