트랜잭션을 이름 그대로 번역하면 거래라는 뜻이다. 다시 말하면 데이터베이스에서 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 이를 위해 데이터베이스는 모든 작업이 성공해서 데이터베이스에 정상 반영(commit)을 하던가, 작업 중 하나라도 실패해서 이전으로 되돌리는 것(rollback)을 지원해준다.
ACID는 원자성, 일관성, 격리성, 지속성을 나타내는 단어이다.
자동 커밋으로 설정하면 각각의 쿼리 실행 직후에 자동으로 커밋을 호출한다. 따라서 커밋이나 롤백을 직접 호출하지 않아도 되는 편리함이 있다. 하지만 쿼리를 하나하나 실행할 때 마다 자동으로 커밋이 되어버리기 때문에 트랜잭션 기능을 제대로 사용할 수 없다.
따라서 commit, rollback을 직접 호출하면서 트랜잭션 기능을 제대로 수행하려면 자동 커밋을 끄고 수동 커밋을 사용해야 한다.
보통 자동 커밋 모드가 기본으로 설정된 경우가 많기 때문에, 수동 커밋 모드로 설정하는 것을 트랜잭션이 시작한다고 본다.
수동 커밋 설정을 하면 이후에 꼭 commit, rollbak을 호출해야 한다.
참고로 수동 커밋 모드나 자동 커밋 모드는 한번 설정하면 해당 세선에서는 계속 유지된다. 단, 중간에 변경하는 것을 가능하다.
DataSource 이해 (0) | 2024.11.30 |
---|---|
커넥션 풀 (0) | 2024.11.17 |
Spring Transaction 사용 시 주의할 점 (0) | 2021.09.25 |
선언적 Transactional (0) | 2021.09.19 |
댓글 영역