Spring을 사용하면서 @Transactional만큼 자주 쓰이면서도, 정확한 동작 원리는 모르고 쓰는 어노테이션도 드물 것 같습니다. "메소드에 붙이면 트랜잭션이 알아서 된다"는 건 알겠는데, 도대체 어떻게 알아서 되는 걸까요?이번 글에서는 @Transactional이 AOP를 통해 어떻게 동작하는지, 트랜잭션이 언제 시작되고 언제 롤백되는지 초보자도 이해할 수 있도록 풀어보겠습니다.트랜잭션이란?본격적인 설명에 앞서, 트랜잭션이 뭔지 간단히 짚고 가겠습니다.트랜잭션(Transaction)은 "더 이상 쪼갤 수 없는 작업의 단위"입니다. 은행 송금을 예로 들면:1. A 계좌에서 10만원 출금2. B 계좌에 10만원 입금 이 두 작업은 반드시 함께 성공하거나, 함께 실패해야 합니다. 1번만 성공하고 2번..