세가지 원칙이 서로 상충되고 있다. 결국 상황에 맞춰 컴포넌트 포함수준을 정해야 한다.
만들고 싶은 서비스를 구체화할 때 변하지 않을 본질적인 기능들을 나열하고 인터페이스화하는게 설계의 시작이라고 배운적이 있다. 구현은 얼마든지 변경가능하고 또 다른 인터페이스와 조합해서 확장할 수 있도록 추상화를 중심으로 설계해나가는 게 중요한 것 같다.
사실 개발하다보면 느낄 수 있는 부분이 원칙과 글로 설명되어있어 좋았다. 기회가 된다면 측정도 해보고 싶다.