여전히 트랜잭션을 담당하는 기술적인 코드가 UserService 안에 자리잡고 있다.
UserService 는 UserServiceTest 가 클라이언트가 되어 사용하고 있다.
직접 사용이 문제? 간접적으로 사용하자.
그 결과 얻을 효과
인터페이스 이용 → 구현클래스를 클라이언트로부터 감추고 런타임 시 DI 적용하는 방법