기술과 서비스에 대한 추상화 기법을 이용하면 특정 기술 환경에 종속되지 않은 포터블한 코드를 만들 수 있다.

동일한 계층에서 수평적 분리

트랜잭션 추상화

애플리케이션 계층 - 애플리케이션 로직

UserDao : DB 연결을 생성하는 방법에 대해 독립적이다.

UserService 와 트랜잭션 기술과도 스프링이 제공하는 PlatformTraszctionManager 인터페이스를 통한 추상화 계층을 사이에 두고 사용하게 함

⇒ 구체적인 트랜잭션 기술에 독립적인 코드가 되었다.

UserDao - DB 연결기술, UserService - 트랜잭션 기술 의 결합도가 낮은 분리

⇒ 애플리케이션 코드를 로우 레벨의 기술 서비스와 환경에서 독립시킨다.