Backend
home
🪑

의존성 역전 원칙

생성일
2025/01/24 05:52
태그

의존성 역전 원칙 (Dependency Inversion Principle)

상위 수준의 모듈은 하위 수준의 모듈에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다.
추상화는 구체적인 사항에 의존해서는 안 된다. 구체적인 사항은 추상화에 의존해야 한다.
모듈:
전체 시스템을 작은 단위로 쪼개놓은 것이다.
자바에서는 패키지가 모듈을 설명해준다.
현재 모듈 구성도
일반적인 의존관계는 상위에서 하위로 만들어진다.
추상화? ⇒ 인터페이스를 도입하는 것이다.
상위 수준의 모듈은 하위 수준의 모듈에 의존하면 안 된다!
해당 구성도는 의존성 역전 원칙을 지키지 못하고 있다!
인터페이스 소유권의 역전이 필요하다. (의존성 역전 원칙에 중요한 축 - Separated Interface 패턴)
인터페이스는 자기를 구현한 클래스 쪽이 아니라 자기를 사용하는 쪽에 있는 게 더 자연스러운 경우가 많이 있다.
인터페이스 소유권 역전 후 - 의존성 역전 원칙 적용 (인터페이스 만든 후 추상화 시킴)
인터페이스를 사용하는 코드가 있는 해당 모듈로 소유권을 이전시킨다! (하위 모듈이 상위 모듈을 의존하는 코드가 만들어짐)