제품 코드와 테스트 코드는 본질적으로 관련되어있기 때문
간단한 코드는 테스트할 필요가 없다. 가치가 0에 가깝다.
컨트롤러의 경우, 포괄적인 통합 테스트의 일부로서 간단히 테스트해야 한다.
테스트 가능한 부분을 추출한다. (험블 래퍼)
육각형 아키텍처와 유사하다. (비즈니스 로직, 외부 의존성 분리)
함수형 아키텍처 (모든 협력자와의 커뮤니케이션에서 비즈니스 로직을 분리, 아무런 협력자도 없다.)
단일 책임 원칙을 지키는 것이다.
다른 예로 MVC가 있다.
비즈니스 로직과 외부 의존성을 분리하는 경우 코드가 깊거나(복잡) 넓을수(많은 외부 의존성) 있지만, 둘 다 가능하지는 않다. (분리 했기 때문에)