스프링 트랜잭션 3

[Spring] @Transactional의 다양한 기능과 주의사항

1. 트랜잭션 적용 여부 확인 `@Transactional`은 AOP를 통해 트랜잭션을 처리하도록 도와준다. 따라서 순수한 비지니스 로직만 남길 수 있다는 장점을 가져왔다. 하지만 반대로, 트랜잭션 관련 코드가 없기 때문에 실제로 트랜잭션이 잘 적용되고 있는건지 확인하기 어렵다. 간단하게 트랜잭션 적용 여부를 확인하는 방법에 대해 알아보자. static class BasicService { @Transactional public void tx() { log.info("call tx"); boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); log.info("tx active={}", txActive); } pub..

Spring 2024.02.27

[Spring] 스프링의 트랜잭션 기술

이전 포스팅과 이어지는 내용입니다. https://dong-woo.tistory.com/148 [Spring] 트랜잭션에 대한 이해와 과거의 활용 데이터를 저장할 때 단순 파일에 저장해도 되지만 현대의 웹 애플리케이션은 왜 데이터베이스에 저장할까? 이는 데이터베이스가 트랜잭션이라는 개념을 지원하기 때문이다. 현대의 우리는 스 dong-woo.tistory.com 직접 구현한 트랜잭션의 문제점 이전 포스팅에서는 커넥션을 파라미터로 넘겨, 직접 트랜잭션을 구현했다. 하지만 현재 단계는 문제점이 상당히 많다. 트랜잭션 관련 문제 만약 JDBC에서 JPA로 데이터 접근 기술을 변경한다면 서비스 계층의 트랜잭션 코드도 변경되어야 한다. 커넥션을 동기화하기 위해서 파라미터로 계속 커넥션을 넘겨준다. 서비스 계층이 ..

Spring 2023.12.16

[Spring] 트랜잭션에 대한 이해와 과거의 활용

데이터를 저장할 때 단순 파일에 저장해도 되지만 현대의 웹 애플리케이션은 왜 데이터베이스에 저장할까? 이는 데이터베이스가 트랜잭션이라는 개념을 지원하기 때문이다. 현대의 우리는 스프링 프레임워크를 사용할 때 @Transactional 애노테이션을 통해 간단히 트랜잭션을 사용하지만, 과거 개발자들은 어떻게 트랜잭션을 사용했는지, 트랜잭션이란 무엇인지 알아보자. 트랜잭션이란? - 트랜잭션의 개념 트랜잭션은 사전적으로 하나의 업무 단위, 혹은 거래 단위를 뜻한다. 웹 애플리케이션에서의 트랜잭션은 무엇을 의미할까? 동일하게 하나의 거래 단위로 해석할 수 있다. 아래의 예시를 살펴보자. 상황 : A가 B에게 2000원을 입금한다. 1. A의 계좌정보를 불러온다. 2. A의 계좌에서 2000원을 출금한다. 3. B..

Spring 2023.12.13