이번 포스팅에서는 스프링 프레임워크에서의 트랜잭션 관리에 대해 자세히 알아보고 @Transactional 어노테이션에 대해서 살펴보겠습니다. 트랜잭션 관리에 대해서는 매우 방대한 분량이므로 두개의 섹션으로 구분하여 진행하도록 하겠습니다. Spring Transaction Management : 스프링이 트랜잭션 관리하는 방법에 대해 깊게 탐구합니다. @Transactional 어노테이션 : 해당 어노테이션의 사용법과 주의사항에 대해서 탐구합니다. Spring Transaction Management 트랜잭션은 완전히 성공하거나 완전히 실패하는 일련의 논리적 작업단위입니다. 은행 계좌이체를 생각해보시면 됩니다. 여기서 작업단위는 A의 계좌에서 출금하는 금액과 B의 계좌에서 입금하는 금액입니다. 둘중 하나라..
트랜잭션 - 비즈니스로직에서 쪼개질 수 없는 하나의 단위작업 - 한 번에 이루어지는 작업의 단위 - 알아두면 좋은 ACID 원칙 원자성(Atomicity) 하나의 트랜잭션은 모두 하나의 단위로 처리해야 한다. A와 B 작업이 하나의 트랜잭션으로 묶여있는 경우 A는 성공, B는 실패할 경우 해당 작업단위는 실패로 끝나야한다. 즉, A,B 모두 rollback 되어야 한다는 원칙 일관성(Consistency) 트랜잭션이 성공했다면 데이터베이스의 모든 데이터는 일관성을 유지해야한다. 격리성(Isolation) 트랜잭션으로 처리되는 중간에 외부에서의 간섭은 없어야한다. 영속성(Durability) 트랜잭션이 성공적으로 처리되면, 그 결과는 영속적으로 보관되어야 한다. 실습했던 내용 - pom.xml 에 라이브러..