<aside> 💡 컴포넌트 사이의 관계를 설명하며, 개발 가능성과 논리적 설계 사이의 균형을 다루는 원칙을 서술
</aside>
ADP, 의존성 비순환 원칙이란
<aside> 💡 컴포넌트 의존성 그래프에 순환 ( cycle )이 있어서는 안된다는 원칙
</aside>
내가 작업 하는 코드가, 특정 코드에 의존 되어 있다면 내가 코드를 수정하지 않아도 의존하고 있는 코드가 수정되면 내 코드가 돌아가지 않는다.
이러한 경우를 책에선 숙취 증후군 이라고 표기하고 있음
이런 숙취 증후군을 피하기 위해 주 단위 빌드 / 의존성 비순환 원칙 을 제시하고 있음
주단위 빌드
의존성 비순환 원칙
순환 의존이 없는 의존성 그래프

출처 : https://icarus8050.tistory.com/47
순환 참조가 있는 의존성 그래프

출처 : https://icarus8050.tistory.com/47
Interface를 활용한 DI를 적용하여 순환 끊기

출처 : https://icarus8050.tistory.com/47
순환 의존성을 끊어 줄 새로운 컴포넌트 생성

출처 : https://icarus8050.tistory.com/47
SDP, 안정된 의존성 원칙 이란
<aside> 💡 안정성의 방향으로 의존하라. 즉 더 안정된 쪽에 의존하라
</aside>
안정성 ( Stability )
변경을 만들기 위해 필요한 작업량에 관련 된 개념
동전을 옆으로 세웠을 때, 쓰러지지 않았다고 해서 안정적이라고 표현하지는 않음
컴포넌트 안쪽으로 들어오는 의존성이 많아지면 ( 해당 컴포넌트를 많이 참조 하는 다른 컴포넌트가 많다면 ) 상당히 안정적이라고 할 수 있음

출처 : https://icarus8050.tistory.com/47
컴포넌트 밖으로 나가는 의존성이 많아지면 ( 해당 컴포넌트를 참조하는 다른 컴포넌트가 없다면 ) 상당히 불안정 적이라고 할 수 있음

출처 : https://icarus8050.tistory.com/47
안정성 지표