[STS] 트랜잭션 관리

안아현·2024년 8월 23일

Spring

목록 보기
8/13

Transaction

  1. 개념
    데이터베이스 작업의 논리적 단위를 말한다. 여러 개의 데이터베이스 작업이 하나의 트랜잭션으로 간주되기도 한다. 트랜잭션의 핵심은 데이터베이스 작업의 안정성과 일관성을 위함이다.

  2. 속성(ACID)
    -Atomicity: 트랜잭션으로 묶인 작업은 하나의 작업 결과만 가질 수 있다. 가령 여러 개의 데이터베이스가 하나의 트랜잭션으로 묶인 경우, 한 작업이라도 실패하면 해당 트랜잭션은 실패한 것으로 간주된다.
    -Consistency: 트랜잭션의 작업이 수행된 후, 데이터베이스의 데이터는 일관성을 유지해야 한다.
    -Isolation: 각각의 트랜잭션은 서로 독립적이어야 한다. 트랜잭션 수행 결과가 다른 트랜잭션의 작업 수행에 영향을 주어서는 안된다.
    -Durability: 트랜잭션의 커밋 후에는 그 결과는 데이터베이스에 저장되어야 한다.

  3. 동작
    *공통: 트랜잭션을 실행하면 트랜잭션을 구성하는 각 연산이 실행된다.

  • 성공: 트랜잭션의 모든 작업의 결과가 성공이면 커밋되고, 그 결과는 데이터베이스에 영구적으로 보관된다.
  • 실패: 트랜잭션 작업의 결과가 하나라도 실패하면 롤백되어 트랜잭션 실행 전의 상태로 돌아간다.
  1. @Transactional
    메서드, 클래스 차원에서 사용될 수 있는 어노테이션으로, 해당 어노테이션을 사용하면 트랜잭션 관리를 간단하게 처리할 수 있다.
profile
programming

0개의 댓글