[Spring + DB] 트랜잭션과 스프링
1. 트랜잭션 [ 트랜잭션이란? ] 트랜잭션은 작업의 완전성을 보장해준다. 논리적인 작업 셋을 모두 완벽하게 처리하거나, 모두 처리하지 못할 경우에는 본래 상태로 복구하는 기능이다. 즉, 작업의 일부만 적용되는 현상(Partial update)이 존재하지 않게 해준다. 트랜잭션에 쿼리가 여러개 조합되었을 때만 의미있는 것은 아니다. 단일 쿼리도 트랜잭션으로 묶었을 때에도 전부 적용되거나 아무것도 적용되지 않는 결과를 보장해주는 것일 뿐이다. MySQL의 기본 스토리지 엔진은 InnoDB인데, 해당 엔진은 쿼리 중 일부라도 오류가 발생하면 전체를 원 상태로 만든다는 트랜잭션의 원칙대로 아래 insert 문을 실행할 때 롤백된다. (PK 중복) 결과적으로 테이블은 여전히 비어있게 된다. create tabl..
2022.05.13