게층형 아키텍처 단점에 대한 대안
하나의 컴포넌트는 오로지 한 가지 일만 해야 하고, 그것을 올바르게 수행해야 한다. 라는 해석보다는
에 더 가깝다.
책임 ⇒ 변경할 이유
소프트웨어를 변경하더라도 이 컴포넌트에 대해서는 전혀 신경쓸 필요가 없어도 된다고 기대한다.
하지만 변경할 이유는 컴포넌트간의 의존성(직접/전이)을 통해서 쉽게 전파된다.
A →(의존) B,C,D,E
⇒ A는 B,C,D,E가 변경됨에 따라 같이 바뀌어야 한다.
잘못 구조화된 소프트웨어를 변경하는 데 더 많은 비용을 지불한 경험
상위 계층은 하위 계층을 의존하기 때문에 변경할 여지가 더 많다.
실제로 영속성 계층이 변경된다고 해서 핵심 로직을 가지고 있는 도메인 계층도 변경해야 할까? 도메인 코드는 애플리케이션에서 가장 중요한 코드이다. 어떻게 이 의존성을 줄일 수 있을까?