트랜잭션

    [DB] 🔀 데이터베이스의 트랜잭션 격리 수준(Isolation level)

    트랜잭션의 격리수준과 동시성 이슈 면접 질문에 답변하기 위해 정리하며 작성했습니다. 트랜잭션이란 A가 B에게 송금을 했다. B가 송금을 받는 중 문제가 생긴다면 A의 송금 요청이 취소되어야 할 것이다. 한꺼번에 수행되어야 하는 작업의 단위이다. 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위한 목적을 가진다. 트랜잭션 ACID 성질 중 격리성(Isolation) := 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 다른 트랜잭션 연산에 끼어들 수 없음 격리 수준이 높아지게 되면 동시에 처리되는 트랜잭션을 차례대로 실행을 하는 것은 동시성 성능이 매우 떨어지게 되므로 각 DBMS에서는 Isolation 성질을 트랜잭션 격리 수준을 이용해서 적용해야 한다. 트랜잭션 격리 수준 ANSI 표..

    [Spring] ↩️ @Transactional 왜 사용하는 거지?

    @Transactional 어노테이션 사용 이유와 사용 방법에 대해 알아보자 📌 @Transactional 사용 이유 한번에 수행되어야 하는 연산들을 처리할 때 그 중 하나가 오류가 난 경우 그 전에 실행되었던 SQL 쿼리들이 다 롤백되어야 하기에 *롤백(Rollback): 롤백은 작업 중 문제가 발생되어 트랜잭션의 처리과정에서 발생한 변경사항을 취소하는 명령어 어노테이션을 사용하는선언적 트랙잭션 (@Transactional) 클래스 레벨에 @Transactional 을 선언하면, 해당 클래스 내 모든 테스트 메서드에 트랜잭션이 적용되고, 각 테스트 메서드가 수행 완료된 후 롤백이 됨 메서드 레벨에 @Transactional 을 선언하면, 해당 테스트 메서드에 트랜잭션이 적용되어 수행 완료 후 롤백이 됨..