트랜잭션 (3) 썸네일형 리스트형 [DB] @Transactional 이란? 해당 포스팅에서 트랜잭션 매니저를 이용해서 아래처럼 트랜잭션을 직접 시작할 수 있었습니다. public void transferMoney(String fromId, String toId, int money) { // 트랜잭션 시작 TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try { // 비즈니스 로직 businessLogic(fromId, toId, money); transactionManager.commit(status); //성공시 커밋 } catch (E.. [DB] Spring 의 트랜잭션 추상화 (트랜잭션 매니저) 아래 코드는 서비스 클래스로, 트랜잭션을 사용하기 위해서 JDBC 기술에 의존하고 있습니다. 즉, JDBC에서 JPA 같은 다른 데이터 접근 기술로 변경하면 서비스 계층의 트랜잭션 관련 코드도 모두 함께 수정해야 하는 문제가 있습니다.package hello.jdbc.service;import hello.jdbc.domain.Account;import hello.jdbc.repository.Account.AccountRepository;import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j;// JDBC 기술에 의존import javax.sql.DataSource;import java.sql.Connection;import java.sql... [DB] 트랜잭션(Transaction) 이란? 데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 여러 가지 이유가 있지만, 가장 대표적인 것은 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문입니다. 트랜잭션을 이름 그대로 번역하면 거래라는 뜻입니다. 즉, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 의미합니다. 예를 들어 A의 돈 10만원을 B에게 계좌이체 한다고 해 봅시다. 그럼 아래와 같이 동작해야 합니다. 1. A의 잔고를 10만원 감소2. B의 잔고를 10만원 증가 1번과 2번 작업은 하나의 작업처럼 동작해야 합니다. 만약 1번은 성공했는데 2번에서 문제가 발생하여 계좌이체에 실패하면 아주 큰 문제가 발생하겠죠. 데이터베이스의 트랜잭션 기능을 사용하면 1번과 2번이 둘 다.. 이전 1 다음