728x90
반응형
트랜잭션이란
더이상 나눌 수 없는 가장 작은 작업 단위 이다.
트랜잭션의 특성으로는 ACID가 있다.
원자성(Atomicity) | 하나의 작업단위는 그 결과가 성공 또는 실패할 경우 관련된 동장은 모두 동일한 결과가 나온다. 작업 중 하나라도 실패한다면 관련된 트랜잭션 내에서 처리한 동작들도 모두 처음 상태로 돌아간다. |
일관성(Consistency) | 트랜잭션이 성공적으로 처리되면 데이터베이스의 관련된 모든 데이터는 일관성을 유지해야 한다. |
고립성(Isolation) | 트랜잭션은 독립적으로 처리되며, 처리되는 중간에 외부에서의 간섭은 없어야 한다. 서로 다른 트랜잭션이 동일한 데이터에 동시에 접근할 경우 적절한 동시 접근 제어를 해야 한다. |
지속성(Durability) | 트랜잭션이 성공적으로 처리되면 그 결과는 지속적으로 유지되어야한다. |
이 중 트랜잭션의 대표적인 특성은 '원자성'이다.
되려면 모두 다 되어야 하고, 하나라도 안된다면 모두 다 안되어야 한다.
과정 중 하나라도 실패할 경우 전체 과정을 모두 취소하고 트랜잭션이 시작하기 전의 상태로 되돌리는 것을 '롤백'이라고 한다.
스프링은 코드기반 트랜잭션과 선언적 트랜잭션처리를 지원한다.
어노테이션을 이용한 트랜잭션은 선언적 트랜잭션 처리이다.
@Transactional 어노테이션은 인터페이스나 클래스, 메서드에 사용할 수 있다.어노테이션이 적용된 대상은 설정된 트랜잭션 빈에 의해서 트랜잭션이 처리된다.
[출처 - 스프링부트 시작하기 김인우]
728x90
반응형
'Programming > spring' 카테고리의 다른 글
[Springboot] lombok이란? 사용방법/추가방법/@Slf4j (0) | 2023.02.13 |
---|---|
[SpringBoot] Gradle lombok 추가 방법 (0) | 2023.02.10 |
[SpringBoot] @RunWith 어노테이션 안나올때 (0) | 2023.02.10 |
[Spring] Spring Boot DevTools 기능/사용법 살펴보기 (0) | 2023.02.08 |
[Springboot] security 시큐리티 기능 임시로 해제할때 (0) | 2023.01.04 |