[TIL] 코드스테이츠 SEB BE Day 52
in TIL
💡 Today I Will Learn
- Spring에서 트랜잭션 처리
✏️ Check Box
Spring에서 트랜잭션 처리
📌 정리
@Transactional
어노테이션으로 트랜잭션을 관리할 경우 체크예외
에 대해서는 신경써야한다. 언체크예외와 달리 속성으로 지정해주지 않으면 롤백
이 이루어지지 않는 것을 실습을 통해 확인하였다.
알아두어야할 속성 중 Propagation (전파)
와 Isolation Level (격리레벨)
이 눈에 들어왔다. 트랜잭션이 진행 중에 어노테이션이 적용된 메서드에 진입했을 때, 동작할 방식을 지정하는 것이 전파
였다. Default값은 REQUIRED
로 진행중인 트랜잭션에 참여하며 없으면 새로 시작하는 옵션이다.
격리레벨은 ACID 원칙에서 독립성에 관한 속성으로 서로 다른 트랜잭션이 충돌할 때의 동작을 지정하는 옵션이다.
이외에도 AOP를 통한 트랜잭션
과 분산 트랜잭션
에 관한 내용들이 담겨있었다. AOP를 통한 트랜잭션은 어노테이션을 통해 충분히 구현해낼 수 있을 것 같아서 우선은 간단히 학습하고 넘어갔다. 분산 트랜잭션은 서로 다른 DB를 하나의 트랜잭션으로 묶을 때 사용한다. 별도의 JTA(Java Transaction API) 매니저가 필요하며 Mysql에서는 Atomikos
를 흔히 이용한다. 또한 스케쥴링을 이용하는 Apache NiFi
와 같은 기술도 있다고 한다.
🎯 Tomorrow
- 단위 테스트
- JUnit
- 슬라이스 테스트
Back to [TIL] 코드스테이츠 SEB BE Day 51