본문 바로가기

백엔드 학습 과정/Section 3 [Spring MVC, JDBC, JPA, RestDo

#7. Spring MVC 트랜잭션

1. 트랜잭션 

여러 개의 작업을 그룹으로 묶어 처리하는 작업 단위.

크게 로컬 트랜잭션, 분산 트랜잭션으로 구분할 수 있으며

Spring에서 사용되는 트랜잭션 방식은 선언형 트랜잭션 방식, 프로그래밍 코드 베이스 트랜잭션 방식이 있다.

 

2. ACID 원칙

Atomicity (원자성)

하나의 트랜잭션으로 묶인 작업들은 하나의 작업으로 인식되어 무조건 동일한 작업 결과가 나와야 한다.

 

Consistency (일관성)

에러, 예외 없이 성공적으로 종료될 경우, 설계된 비즈니스 로직의 의도대로 일관성 있게 처리되어야 한다.

 

Isolation (격리성)

여러 개의 트랜잭션이 실행될 경우, 서로 영향을 주지 않고 각각 독립적으로 실행이 되어야 한다.

 

Durability (지속성)

트랜잭션이 완료되면 그 결과는 지속되어야 한다. DB가 종료되어도 데이터는 영원히 유지되어야 한다.

 

3. 트랜잭션 커밋(Commit), 롤백 (Rollback)

A. 커밋 (commit)

모든 작업을 최종적으로 종료하며 DB에 반영하는 명령어, 수행하면 변경된 내용이 DB에 영구적으로 저장.

 

B. 롤백 (rollback)

작업 중 문제가 발생했을 때, 트랜잭션 내에서 수행된 작업을 취소하고, 트랜잭션 시작 이전으로 돌아감.