본문 바로가기

@Transactional2

[DataBase] 스프링 트랜잭션 이해 트랜잭션(Transaction) 이란? · 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. · 스프링은 PlatformTransactionManager라는 인터페이스를 통해 트랜잭션을 추상화한다. PlatformTransactionManager 인터페이스 package org.springframework.transaction; public interface PlatformTransactionManager extends TransactionManager { TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException; void commit(Transaction.. 2023. 10. 6.
[DataBase] 데이터 접근 기술 - 테스트 테스트 - 데이터베이스 분리 로컬에서 사용하는 애플리케이션 서버와 테스트에서 같은 데이터베이스를 사용하면 테스트에서 문제가 발생한다. 이를 해결하기 웨해 테스트를 다른 환경과 철저하게 분리해야 한다. 가장 간단한 방법으로는 테스트 전용 데이터베이스를 별도로 운영하는 것이다. 테스트에서 매우 중요한 원칙 1. 테스트는 다른 테스트와 격리해야 한다. 2. 테스트는 반복해서 실행할 수 있어야 한다. 테스트가 끝날 때마다 추가한 데이터에 DELETE SQL을 사용해도 되지만, 가장 좋은 방법은 트랜잭션, 롤백이다. 테스트 - 데이터 롤백 테스트가 끝나고 트랜잭션을 강제로 롤백해버리면 데이터가 제거된다. 테스트를 하면서 데이터를 이미 저장했는데, 중간에 테스트가 실패해 롤백을 호출하지 못해도 트랜잭션을 커밋하지 .. 2023. 9. 25.