728x90 트랜잭션3 JPA - 트랜잭션 매니저3 전파 속성 @Transaction 속성 @Transaction 에 설정할 수 있는 속성은 다음과 같습니다. @Transaction 속성 중에 이번 포스트에서 Propagation 속성을 살펴보겠습니다. Propagation 속성 Propagation 은 전달 또는 전파라고 하며, 진행되고 있는 트랜잭션에서 다른 트랜잭션이 호출될 때 어떻게 처리할지 정하는 것을 '트랜잭션의 전파 설정'이라고 부릅니다. 위와 같이 전파 속성은 총 7가지 설정이 존재합니다. 사용 예시는 다음과 같습니다. @Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagatio.. 2022. 3. 25. JPA - 트랜잭션 매니저1 개요 트랜잭션이란? 트랜잭션이란 insert, update, delete 등 DB 변경에 해당하는 SQL 문을 처리하는 작업의 단위입니다. 기본적으로 SQL 명령문 하나를 실행하는 것에서부터 서비스 내 메소드 전체가 트랜잭션의 단위가 될 수 있습니다. 부모 트랜잭션 내부에 자식 트랜잭션이 있는 경우에 부모 트랜잭션으로 트랜잭션 단위가 묶이게 됩니다. 트랜잭션의 속성(ACID) 트랜잭션은 4가지 속성(ACID)을 기반으로 작동합니다. Atomicity 원자성 원자성 - 부분적인 성공을 허용하지 않습니다. all or nothing 트랜잭션 내에 있는 모든 작업이 완료되거나 모든 작업이 완료되지 않아야 한다. 즉, 트랜잭션 내의 작업 중 하나라도 exception이 발생하면 트랜잭션 내의 모든 작업은 롤백(rol.. 2022. 3. 25. JPA - 트랜잭션 매니저2 독립성(격리) 속성 @Transaction 속성 @Transaction 에 설정할 수 있는 속성은 다음과 같습니다. @Transaction 속성 중에 이번 포스트에서 isolation 속성을 살펴보겠습니다. Isolation 속성 Isolation 은 트랜잭션에서 독립성 혹은 격리성이라고 부릅니다. Isolation 은 Transaction 에서 일관성이 없는 데이터를 허용하도록 하는 수준이며, 여러 Transaction들이 다른 Transaction의 방해로부터 보호되는 정도를 나타냅니다. 격리성에는 격리 레벨(수준)이 존재합니다. 격리 레벨이 높은 수록 데이터의 정합성을 보장해주는 대신에 동시 처리하는 수행능력(성능)이 떨어지게 됩니다. 반대로, 격리 레벨이 낮을 수록 성능은 좋아지지만 데이터의 정합성이 떨어지게 됩니다.. 2022. 3. 25. 이전 1 다음 728x90