트렌잭션이란?
- 데이터베이스 상태를 변화시키기 위한 작업의 단위(더 이상 쪼개질 수 없는 최소의 연산을 의미)
- 데이터베이스 상태를 변화시키는 것은 간단하게 말해서 SQL을 활용하여 데이터베이스에 접근하는 것을 의미한다.
트렌젝션의 특징 4가지(ACID)
1. 원자성(Atomacity)
- 트렌잭션이 시행되면 모든 작업이 실행되거나, 모든 작업이 실행이 안되어야 한다.(트렌잭션 내 특정 작업만 실행X)
2. 일관성(Consistency)
- 트렌잭션이 진행되는 동안에 데이터베이스의 업데이트와 같은 변화가 있어도, 처음에 참조한 데이터베이스를 활용한다.
3. 독립성(Isolation)
- 하나의 트렌젝션은 다른 트렌젝션 연산에 끼어들 수 없다.
4. 지속성(Durability)
- 트렌젝션 성공 시, 결과는 영구적으로 반영되어야 한다.
@Transactional 작동원리
- Spring은 어노테이션이 붙은 메서드에 대하여 프록시를 생성한다.
- 해당 메서드의 앞 뒤에 트렌잭션의 시작과 끝을 AOP로 구현이 된다.
테스트 환경에서의 @Transactional
- 테스트 환경에서는 TestTransactional 클래스가 @Transactional이 붙은 메서드가 실행 된 후 default 설정을 rollbaack으로 한다. 따라서 실행 결과가 db에 반영이 되지 않고 테스트를 반복하여도 똑같은 결과를 받을 수 있다.
- 참고 블로그
https://kafcamus.tistory.com/30
@Transactional 어노테이션의 이해
나는 보통 서비스 코드에 @Transactional 어노테이션을 활용해준다. 그런데 사실 뜻도 잘 모르고 좋다고 그래서 쓴거라...지나고 보니 정확히 설명하기가 어려웠다. 그런고로, 해당 어노테이션의 작
kafcamus.tistory.com
트랜잭션(Transaction)이란?
트랜잭션이란? 트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 데이터베이스의 상태를 변화시킨다는 것은 무얼 의미하는 것일
mommoo.tistory.com
https://tecoble.techcourse.co.kr/post/2021-05-25-transactional/
Transactional 어노테이션
@Transactional…
tecoble.techcourse.co.kr
'Spring' 카테고리의 다른 글
스프링 컨테이너와 스프링 빈 (0) | 2022.11.03 |
---|---|
스프링 mvc 동작 원리에 대하여 (0) | 2022.10.23 |
서블릿과 JSP- 02 정리 (0) | 2022.03.09 |
스프링 입문 강의 요약 01-3 (0) | 2022.01.26 |
스프링 입문 강의 요약 01-2 (0) | 2022.01.26 |