transaction2 Spring의 트랜잭션 추상화로 JDBC 기반 트랜잭션 처리의 문제점 해결하기 트랜잭션은 왜 필요할까?● A가 B에게 10000원을 이체하는 경우를 생각해보자.START TRANSACTION;UPDATE member SET balance = balance - 10000 WHERE id = 'A';UPDATE member SET balance = balance + 10000 WHERE id = 'B';COMMIT; ● A의 잔고를 줄이고 B의 잔고를 늘리면 되므로 간단해 보인다.@Slf4j@RequiredArgsConstructorpublic class MemberService { private final MemberRepository memberRepository; public void accountTransfer(String fromId, String toId, int amo.. 2025. 4. 27. 트랜잭션과 ACID 트랜잭션은 하나의 작업 단위를 묶은 것으로이 안에 있는 여러 작업은 모두 성공하거나 하나라도 실패하면전부 실패한 것으로 처리한다. ● 예를 들어 A가 B에게 10000원을 계좌 이체 한다고 할 때 A의 잔고는 10000원 감소하고 B의 잔고는 10000원 증가해야 한다. ● 계좌 이체는 이렇게 2가지 작업이 하나의 작업처럼 동작해야 한다. ● 두 작업 중 하나만 성공하면 심각한 문제가 발생된다. ● 트랜잭션을 사용하면 두 작업 다 성공해야 저장하고, 하나라도 실패하면 이전 상태로 돌아갈 수 있다. ● 모든 작업이 성공해서 데이터베이스에 정상 반영되는 것을 Commit이라 한다 ● 작업 중 하나라도 실패해서 이전으로 되돌리는 것을 Rollback이라 한다. 트랜잭션의 특성 ACIDAtomicit.. 2025. 3. 23. 이전 1 다음