"all or nothing"
트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징이다.
예를 들어 현재 홍철은 1000만원, 규영이에게 500만원을 이체하려는 상황이다.
이 작업을 취소한다고 했을 때 홍철은 다시 1000만원, 규영이는 0원을 가져야 한다. 여기서 만일 3단계만 취소가 된다면 문제가 된다.
그렇기 때문에 all or nothing 인 것이다.
또 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다.
커밋과 롤백
트랜잭션 전파
트랜잭션 수행 시 서로 끼어들지 못하는 것을 말한다.
복수의 병렬 트랜잭션을 서로 격리되어 마치 순차적으로 실행되는 것처럼 작동되어야 한다.
대신에 순차적으로 하나씩 실행되는 만큼 성능이 나쁠 수 있다.
여러개의 격리 수준으로 나눠서 격리성을 보장한다.
격리 수준에 따라 발생하는 현상
팬텀 리드 (phantom read)
반복 가능하지 않은 조회
더티 리드
출처
『면접을 위한 CS 전공지식 노트』