트랜잭션
-
Transaction Propagation과 예외 전파Spring 2023. 2. 12. 18:04
이번 프로젝트를 진행하면서 try catch 예외처리 및 noRollbackFor 처리를 해준 부모 트랜잭션에서 계속해서 자식 트랜잭션의 예외 때문에 롤백되는 현상이 발생했는데,' 왜 롤백 하지 않도록 처리 했는데 예외가 발생했는가?'를 알아보면서 트랜잭션 전파와 예외에 대해서 공부하게 되었다. 알고보니 처리를 엉뚱한데에 해줘서 생긴 문제,,, 🤦🏻♀️ 트랜잭션 전파 트랜잭션 전파란 트랜잭션의 경계에서 이미 진행중인 트랜잭션이 있을 때 또는 없을 때 어떻게 동작할 것인가를 결정하는 방식을 말한다. 트랜잭션 전파 종류 PROPAGATION_REQUIRED 진행중인 트랜잭션이 없으면 새로 시작하고 이미 시작된 부모 트랜잭션이 있으면 이에 참여 DefaultTransactionDefinition의 트랜잭션 ..
-
트랜잭션 (feat. @Transactional)Spring 2021. 12. 18. 18:18
트랜잭션이란 비지니스 로직에서 쪼개질 수 없는 하나 단위의 작업을 말한다. (DB상태 변화를 위해 행하는 작업의 작은 단위) ACID원칙 트랜잭션에는 네가지 원칙이 있다. 원자성 (Atomicity) : 트랜잭션은 하나의 단위로 이루어져야 한다. (모두 성공시 실행, 하나라도 실패시 rollback처리) 일관성 (Consistency) : 트랜잭션 성공시 DB의 데이터는 일관성(같은 결과)을 지녀야 한다. 격리성 (Isolation) : 트랜잭션 처리 과정 중 외부의 간섭은 없어야 한다. (독립적 실행) 영속성 (Durability) : 트랜잭션이 성공하면 그 결과는 영속적으로 보관 되어야 한다. (영구 반영) 트랜잭션 관리 (범위) 트랜잭션의 경계는 프레젠테이션층과 비지니스 로직 층 사이에 존재하는 것..