어떤 변경이 필요할 때 수정 대상이 명확해진다.

DAO 가 각각 수백개가 되고, 서비스 클래스도 그만큼 많다고 생각해보자.

  1. 서비스 하나가 여러개의 DAO 를 사용하는 경우가 많아질 것

  2. DAO 를 수정할 경우

    → what if…

    ⇒ 수백개의 클래스도 다같이 수정 → 수많은 테스트도 함께 수정

기술적인 수정사항도 마찬가지

  1. 애플리케이션 계층 코드가 특정 기술에 중속되어 기술이 바뀔 때마다 코드 수정이 필요하다면

JDBC 에서 JTA 로 트랜잭션 기술이 변경된다면?

case 1. (서비스 클래스 수) x (트랜잭션을 사용하는 메서드 수) ... 만큼의 코드 수정 필요

case 2. XML 설정을 몇줄로 수정하는 것으로 트랜잭션 기술을 한번에 전환하는 방식

⇒ 많은 실수가 발생할 확률 상승, 치명적 버그 도입될 가능성

개발이 아닌 운영중인 코드에 이런 수정이 필요하다면? → 쥿된거임