2025-08-09 00:26

Tags: 소프트웨어 공학

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

  • 부패하기 쉬운 저수준의 구체적인 구현으로 부터 고수준의 정책 보호
  • 의존성 방향을 역전시켜 고수준 모듈이 저수준 모듈 변경 영향 안받게 함
  • 추상화에 의존하라.
  1. 고수준 모듈은 저수준 모듈에 의존해서는 안 된다. 둘 다 추상화에 의존해야 한다.
  2. 추상화는 세부 사항에 의존해서는 안 된다. 세부 사항이 추상화에 의존해야 한다.
  • 고수준 모듈은 ‘무엇’을 할것인가 정의
  • 저수준 모듈은 ‘어떻게’ 할것인가 구현
  • 주문 처리 로직MySQL 저장 로직 이 방식에서 인터페이스나 추상 클래스 도입
  • 주문 처리 로직주문 저장 인터페이스MySQL 저장 로직처럼 구체적 세부사항 모름
  • 제어의 역전의존성 주입 으로 실제 의존성 역전 원칙 구현
  • 본질은 소유권의 역전
  • 고수준 모듈이 추상 인터페이스 소유, 저수준 모듈은 단지 인터페이스 구현
  • 플러그인 아키텍쳐의 기반

References

단일 책임 원칙 SOLID

의존성 역전 원칙 (DIP) 핸드북