인프런 커뮤니티 질문&답변
DIP(의존성 역전의 원칙)은 왜 의존성이 역전된다는 것인가요?
작성
·
916
9
안녕하세요 영한님~ 강의 잘 듣고있습니다!
옛날부터 궁금했던 점이 하나 있는데 바로 의존성 역전의 원칙은 왜 의존성 역전이라고 표현하는가입니다.
의존성 역전의 원칙이 뭐하는 녀석이고, 왜 필요한 지는 알겠지만, 왜 의존성이 역전된다고 표현하는 지는 잘 모르겠어서요!
어떤 경우의 의존성과 비교했을 때 그 경우와 의존되는 방향이 역전되었기 때문인가요?
DIP가 사용되는 경우 사람은 추상적인 자동차 인터페이스에 의존해야지 구체적인 K3라는 구현체에 의존해서는 안된다고 할 수 있을텐데.
이와 반대로 추상적인 것이 아닌 구체적인 것에 의존해야하는 경우도 있기때문에 DIP가 사용되는 경우는 그 반대를 의미하는 "역전"이라고 부르는 건가요?
감사합니다!
퀴즈
What was one of the major difficulties of using EJB in the Java enterprise development environment in the early 2000s?
Very low adoption cost
Simple and fast development
Complex setup and high reliance on technology
Excellent flexibility and scalability
답변 2
14
안녕하세요. Umi님
맞습니다. 전통적인 개발 방법은 클라이언트 -> 구체 클래스를 의존합니다. 그런데 이제는 구체 클래스를 의존하는게 아니라 추상적인 부분에 의존하기 때문에 의존성이 역전 된다고 표현합니다. 자주 변하는 구체적인 것에 의존하다가 잘 변하지 않는 추상적인 부분에 의존하게 되는 것이지요.
클라이언트 -> 구체 클래스
그런데 여기서 재미있는 점은 클라이언트만 추상에 의존하는게 아니라 구체 클래스까지 추상에 의존하게 된다는 점입니다.
클라이언트 -> 추상 <- 구체 클래스
감사합니다.
5
그렇군요! 아무래도 요즘 세대에는 말씀해주신 "전통적인 개발 방법"에서의 클라이언트 -> 구현체에 의존하는 경우를 별로 접해볼 일이 없어서 그런지 역전이란 말이 잘 이해안되었는데...
감사합니다 영한님. ㅎㅎ 덕분에 이해가 잘 되었습니다.





