1.2.5 외부 의존성과 인프라 적절히 다루기
단순한 객체지향 디자인은 비즈니스 로직을 포함하는 도메인 코드와 외부 의존성과 통신에 필요한 코드를 분리한다. 그림 1-6을 보면 왼쪽에는 도메인 클래스, 오른쪽에는 다른 시스템이나 인프라와의 통신을 처리하는 클래스의 모습이다.
인프라에 대한 세부 사항이 도메인 코드에 침투하면 인프라 변경이 어려워질 수 있다. 예를 들어 데이터베이스에 접근하는 모든 코드가 코드 기반 전체에 퍼져 있다고 상상해보자. 이제 응용 프로그램의 응답 시간을 단축하기 위해 캐싱 계층을 추가해야 한다면, 이를 위해 모든 코드를 변경해야 할 수도 있다.