본문 바로가기

개발/Spring Boot

(2)
트랜잭션 전파 배경지난 글에서 트랜잭션에 대해 조금 알아보는 시간을 가졌습니다. 그때 spring의 트랜잭션은 @Transactional을 통해 간단히 연결하고 종료가 가능하다고 했는데요, 하지만 간단한 만큼 언제 써야되고 어디까지 영향을 미치는지 알아야 나중에 문제가 생기지 않겠죠? 오늘은 이 트랜잭션이 어디까지 전파되는지 알아보도록 합시다. 내용spring에서 트랜잭션 전파는 속성에 뭘 주느냐에 따라 달라지게 됩니다. 이렇게 default 타입으로 REQUIRED 타입이 존재합니다. 다른 전파 타입은 어떤 것이 있을까요?이렇게 다양한 타입들이 존재하지만 오늘은 required와 requires_new에 대해 알아봅시다. 기존의 트랜잭션이 진행중일 때 새로운 트랜잭션이 시작되면 외부 트랜잭션과 내부 트랜잭션으로 구분..
스프링 @Transactional 배경이전 글에서는 트랜잭션 격리 수준에 대해 이야기를 했었는데 이 번 글은  스프링의 @Transactional에 대해 알아보려고 합니다. 왜 쓰고 어떻게 동작하는 것일까요? 내용[ Transaction ]우리는 DB 데이터를 수정하고 조회하는 일을 빈번하게 하고 있습니다. 도중에 예외가 발생하게 되면 이전이 상태로 되돌아가야 하는데 이렇게 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션입니다. 또한 트랜잭션은 더이상 쪼갤 수 없는 최소 작업단위를 의미합니다. 보통 commit과 rollback으로 관리가 되어지죠. 이런 트랜잭션을 쓰는 가장 큰 이유 중 하나는 돈과 관련된 문제가 크기 때문입니다. 예를들어서 요즘 간편하게 app을 통해서 돈을 주고받는데 트랜잭션이..