**트랜잭션**은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 말합니다.
커밋(commit)은 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어입니다. 트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장되는 것을 말합니다.
“커밋이 수행되었다.” 를 “하나의 트랜잭션이 성공적으로 수행되었다.”라고도 말합니다.
다음 그림처럼 update, insert, delete 의 쿼리가 하나의 트랜잭션 단위로 수행되고 이후에 데이터베이스에 영구 저장됩니다.

하지만 에러나 여러 이슈 때문에 트랜잭션 전으로 돌려야 한다면 어떻게 해야 할까요?
이 때 사용하는 것이 롤백 입니다. 롤백이란 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일(취소)을 말합니다.
이러한 커밋과 롤백 덕분에 데이터의 무결성이 보장됩니다. 또한, 데이터 변경 전에 변경 사항을 쉽게 확인할 수 있고 해당 작업을 그룹화할 수 있습니다. 이 때문에 트랜잭션으로 묶는 로직에 외부 API 호출은 자제해야 합니다. (롤백도 생각해야 하기 때문)
트랜잭션을 수행할 때 커넥션 단위로 수행하기 때문에 커넥션 객체를 넘겨서 수행해야 합니다. 하지만 이를 매번 넘겨주기가 어렵기도 하고 귀찮기도 합니다. 이를 넘겨서 수행하지 않고 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭션에 묶이도록 하는 것을 트랜잭션 전파라고 합니다.