반복되는 코드 트랜잭션을 시작하고, 비즈니스 로직을 실행하고, 성공하면 커밋하고, 예외가 발생해서 실패하면 롤백한다. 다른 서비스에서 트랜잭션을 시작하려면 try , catch , finally를 포함한 성공 시 커밋, 실패 시 롤백 코드가 반복될 것이다. 이런 형태는 각각의 서비스에서 반복된다. 달라지는 부분은 비즈니스 로직뿐이다. 이럴 때 템플릿 콜백 패턴을 활용하면 이런 반복 문제를 깔끔하게 해결할 수 있다. 스프링은 TransactionTemplate라는 템플릿 클래스를 제공한다. TransactionTemplate public class TransactionTemplate { private PlatformTransactionManager transactionManager; public T exe..