의존성 역전 모르면, 저쪽 코드가 바뀔 때 우리 코드를 싹 다 바꿔야해요

예? 그러면 안되죠. 그렇게 하지 않기 위해서 '의존관계 역전' 알아야합니다. 의존 관계 역전이란, 1. 상위 모듈은 하위 모듈에 의존하지 않습니다. 둘 다 추상화(인터페이스 등)에 의존합니다. 2. 추상화는 세부사항에 의존하지 않습니다. 세부 사항이 추상화에 의존해야 합니다. 라고 하는데요. 이게 무슨 말이냐..를 이해해보자면, 만약 위 원칙을 지키지 않고서 외부 라이브러리를 이용해서 개발을 했다고 가정합시다. 그러면 외부 라이브러리가 하위 모듈이 됩니다. 내가 짠 코드는 상위 모듈이고요. 그런데 라이브러리 버전이 업데이트되어서 내가 사용한 라이브러리 모듈의 구체적인 세부 사항이 변경되는 경우가 생깁니다. 라이브러리에서 어떤 메서드를 가져다썼는데, 이게 갑자기 이름이 바뀌는 겁니다. (물론 제대로 잘 유지되는 저장소라면 하위 호환에 deprecation warning 도 하고 하겠지만요) 그러면 그 모듈을 사용하는 내가 짠 코드(상위 모듈)가 변경되어야 합니다. 그러면 어떻게 해야할까요? 외부 라이브러리에 변경이 있더라도 추상화된 interface를 이용해서 내 main 코드는 변경할 필요가 없도록 해야한다는(의존성을 역전시켜야 한다는) 말입니다. 이전에 python으로 의존성 역전 예시를 만들었던 글을 공유합니다.

SOLID with Python - Dependency Inversion Principle

Mk's Blog

SOLID with Python - Dependency Inversion Principle

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 27일 오전 11:23

 • 

저장 17조회 1,508

댓글 0