SPRING
실무에서 잘못 사용하고 있던 Transaction
실무 프로젝트 전반에 REQUIRES_NEW가 남용되던 원인을 프록시 패턴과 롤백 시점 이해 부족에서 찾아 분석한 경험을 공유합니다.
실무 프로젝트 전반에 REQUIRES_NEW가 남용되던 원인을 프록시 패턴과 롤백 시점 이해 부족에서 찾아 분석한 경험을 공유합니다.
락 기반 동시성 제어의 한계를 살펴보고, MVCC가 커밋된 데이터만 읽는 방식과 트랜잭션 격리 수준에 따라 읽는 데이터가 달라지는 원리를 정리합니다.
애그리거트의 개념과 애그리거트 루트의 역할을 정리하고, 트랜잭션 범위를 하나의 애그리거트로 제한해야 하는 이유와 ID를 이용한 애그리거트 참조 방식을 설명합니다.
같은 서비스 안에서 @Transactional 메서드를 자기 호출해 롤백이 안 되는 문제를 실제 운영 코드에서 겪고 해결한 과정을 기록합니다.
여러 개의 트랜잭션 매니저 빈이 등록된 환경에서 테스트 코드가 NoUniqueBeanDefinitionException을 던진 원인과 해결 과정을 정리합니다.
트랜잭션의 ACID 성질과 @Transactional의 propagation, isolation, rollbackFor 등 주요 옵션을 정리합니다.