목록Transactional (2)
우당탕탕
@Transactional 분리 시 발생하는 Self Invocation 오류와 그 원인 및 해결Self Invocation과 @Transactional의 관계 Spring에서 트랜잭션을 선언할 때 흔히 사용하는 방식은 바로 @Transactional 어노테이션을 메서드나 클래스에 붙이는 것이다. 이 어노테이션 덕분에 해당 메소드의 실행 시작과 함께 트랜잭션이 열리고, 작업이 끝나면 커밋 또는 롤백이 자동으로 처리된다. 그런데 개발하다 보면 이런 상황이 자주 생긴다.“한 서비스 내 메소드A에서 메서드 B를 호출하는데, B에만 @Transactional을 붙였더니 트랜잭션이 동작하지 않는 것 같다?” “@Transactional(propagation=REQUIRES_NEW)로 새로운 트랜잭션을 만들었는..
@Transactional ( 트랜잭션 )에 대한 이해트랜잭션의 개념트랜잭션은 데이터베이스에서 수행되는 작업의 묶음으로, 일련의 작업이 모두 성공적으로 완료되거나 모두 실패해야 하는 특성을 가집니다. 이를 ACID 속성이라고 하며, 아래와 같은 특징을 가집니다원자성(Atomicity): 트랜잭션 내의 모든 작업이 성공해야만 데이터베이스에 반영됩니다. 하나라도 실패하면 전체가 롤백되어야 합니다. ( ALL OR NOTHING )일관성(Consistency): 트랜잭션이 완료되면 데이터베이스는 일관된 상태를 유지해야 합니다.격리성(Isolation): 동시에 실행되는 트랜잭션 간에 서로 영향을 미치지 않아야 합니다.지속성(Durability): 트랜잭션이 성공적으로 완료된 후에는 그 결과가 영구적으로 저장되..
