[SPRING] Transaction Propagation
·
SPRING
스플링에서는 트랜잭션 처리를 지원하는데, @Transactional 어노테이션을 통하여 선언적 트랜잭션 처리 방식을 지원함, 해당 어노테이션의 옵션엔 propagation이라는 것이 있는데 해당 옵션은 트랜잭션 전파 방식을 설정하게 해줌 Transaction Propagation (트랜잭션 전파옵션) 트랜잭션 동작 도중 다른 트랜잭션을 호출하는 상황에서 선택할 수 있는 옵션 트랜잭션을 시작하거나 기존 트랜잭션에 참여하는 방법에 대해 결정하는 속성을 지정하는 옵션 (트랜잭션 흐름을 컨트롤 하는 옵션) Transaction Propagation 종류 REQUIRED (default) 이미 시작된 트랜잭션이 있으면 참여하고 없으면 새로 시작 REQUIRES_NEW 항상 새로운 트랜잭션으로 시작, 진행중인 트랜..
[DB] 트랜잭션
·
DATABASE
정의 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 한꺼번에 모두 수행되어야하는 일련의 연산 ACID라 하는 원자성, 일관성, 격리성, 지속성을 보장해야함 ACID 원자성(Atomicity) : 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 or 모두 실패 해야함 일관성(Consistency) : 모든 트랙잭션은 일관성 있는 데이터베이스 상태를 유지해야함 (무결성 제약조건을 항상 만족해야함) 격리성(Isolation) : 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리 (동시에 같은 데이터를 수정하지 못하도록 함, 격리성은 동시성과 관련된 성능 이슈로 인해 격리수준을 선택할 수 있음) 지속성(Durability) : 트랜잭션을 성..