💥 스프링 트랜잭션 Propagation 과 Isolation 이해하기

스프링의 @Transactional 어노테이션을 사용해보신 적이 있나요? 아시는 분들도 계시겠지만 이 어노테이션은 트랜잭션에 대한 관리를 매우 쉽게 해주지만, 반대로 잘못 쓰게 될 경우 큰 재앙(?)을 불러올 수 있습니다. 그만큼 사용하기 전에 동작방식에 대해 잘 알고 사용해야하는데요, 오늘 소개해드릴 블로그에는 스프링 @Transactional 어노테이션의 동작에 빠질 수 없는 개념인 Propagation 과 Isolation Level 에 대해 자세히 정리되어 있습니다. 블로그 내용을 간략하게 설명 드리면 다음과 같습니다. 📌 Propagation - 트랜잭션의 영역, 바운더리를 지정하는 개념으로 특정 트랜잭션 동작 도중 또다른 트랜잭션을 호출(실행) 하는 상황에서 트랜잭션을 어떻게 동작시킬 것인지 결정할 수 있습니다. (예: 트랜잭션이 적용된 메서드에서 트랜잭션이 적용된 또다른 메서드를 호출했을 경우 어떻게 처리할 것인가를 결정) - 어떻게 결정하느냐에 따라 호출 당한 트랜잭션 입장에서 호출한 쪽의 트랜잭션을 그대로 사용할 수도 있고, 새롭게 트랜잭션을 생성할 수도 있습니다. - @Transactional의 propagation 속성을 통해 지정이 가능합니다. 📌 Isolation Level - 동시 트랜잭션이 수행될때 다른 트랜잭션이 동일한 데이터에 대해서 어떻게 보일지에 대한 범위를 나타내는 개념입니다. - 만약 트랜잭션이 동시에 수행되지 못하도록 막고 순차적으로 수행하도록 한다면 데이터의 정합성은 유지할 수 있지만 성능이 떨어질 수 있습니다. - 따라서 여러 트랜잭션들을 동시에 수행시키면서 데이터의 정합성을 유지시킬 수 있는 적절한 격리 수준을 설정하면 성능적인 이점을 얻을 수 있습니다. 공유드린 링크에 Propagation 의 종류와 동작, Isolation Level 종류와 동작에 대해 자세하게 설명되어 있으니 관심있으신 분들께서는 한번 보시면 좋겠습니다. 🔗 원문 링크: https://devocean.sk.com/blog/techBoardDetail.do?ID=163799

면접 셤? 단골문제 JPA Propagation과 Isolation 이해하기

devocean.sk.com

면접 셤? 단골문제 JPA Propagation과 Isolation 이해하기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 7월 28일 오전 6:49

 • 

저장 202조회 5,544

댓글 0