
5.2.3 트랜잭션 동기화 Connection 파라미터 제거 먼저 Connection을 파라미터로 직접 전달하는 문제를 해결한다. upgradeLevels() 메소드가 트랜잭션 경계설정을 해야 한다는 사실은 피할 수 없다. 따라서 그 안에서 Connection을 생성하고 트랜잭션 시작과 종료를 관리하게 된다. Connection 오브젝트를 계속 파라미터로 전달하다가 DAO를 호출할 때 사용하게 하는 대신 스프링이 제안하는 방법은 트랜잭션 동기화 transaction synchronization 방식이다. 트랜잭션 동기화란 UserService에서 트랜잭션을 시작하기 위해 만든 Connection 오브젝트를 특별한 저장소에 보관해두고, 이후에 호출되는 DAO의 메소드에서는 저장된 Connection을 가져..