JAVA
spring 트랜잭션과 db트랜잭션
포금이
2025. 3. 14. 10:23
1. Spring 트랜잭션 vs. DB 트랜잭션 차이점
비교 항목Spring 트랜잭션DB 트랜잭션
주체 | Spring 프레임워크 (트랜잭션 매니저) | DBMS (예: CUBRID, MySQL, Oracle 등) |
관리 대상 | 여러 개의 DB 트랜잭션, 서비스 계층에서 트랜잭션 제어 가능 | 하나의 DB 커넥션 내에서 실행되는 SQL 문들 |
적용 범위 | 메서드 단위로 트랜잭션 관리 가능 (@Transactional 사용) | 특정한 SQL 쿼리 실행 단위로 관리 |
전파(Propagation) 지원 | 여러 개의 트랜잭션을 하나로 묶어서 관리 가능 | 단일 DB 커넥션 내에서만 관리 |
트랜잭션 롤백 | 런타임 예외가 발생하면 자동으로 롤백 가능 | ROLLBACK 명령을 직접 실행해야 함 |
다중 데이터베이스 지원 | 여러 개의 DB와 연동 가능 (JTA 사용) | 하나의 데이터베이스에서만 동작 |
Spring 트랜잭션은 비즈니스 로직을 기준으로 트랜잭션을 관리할 수 있도록 도와주고, DB 트랜잭션은 SQL 실행 단위에서 트랜잭션을 관리하는 차이가 있음.
즉, Spring 트랜잭션은 비즈니스 로직 중심, DB 트랜잭션은 데이터 조작 중심 이다.