[객체 지향 프로그래밍 입문 - 인프런] DIP
![post-thumbnail](https://velog.velcdn.com/images/sung_hyuki/post/0592bc02-dacd-447b-95b3-9001155c4e50/OOP(Object-Oriented-Programming)%20(%E1%84%91%E1%85%A1%E1%84%85%E1%85%A1%E1%86%AB).png)
DEPENDENCY INVERSION PRINCIPLE
- 의존 역전 원칙
- 고수준 모듈은 저수준 모듈의 구현에 의존하면 안 됨
- 저수준 모듈이 고수준 모듈에서 정의한 추상타입에 의존해야 함
- DIP는 유연함을 높임
- 고수준 모듈의 변경을 최소화하면서 저수준 모듈의 변경 유연함을 높임
부단한 추상화 노력 필요
- 처음부터 바로 좋은 설계가 나오지는 않음
- 요구사항/업무 이해가 높아지면서 저수준 모듈을 인지하고 상위 수준 관점에서 저수준 모듈에 대한 추상화 시도
![](https://velog.velcdn.com/images%2Fsung_hyuki%2Fpost%2Fa19afbdb-c753-4919-8c0d-9e842686d8a5%2F1.png)
![](https://velog.velcdn.com/images%2Fsung_hyuki%2Fpost%2F82d9eff0-8ec0-4a23-87c8-813157711fc5%2F2.png)
![](https://velog.velcdn.com/images%2Fsung_hyuki%2Fpost%2Fbe5d1f89-5e06-4a8c-982c-879a5c3b7178%2F3.png)
![](https://velog.velcdn.com/images%2Fsung_hyuki%2Fpost%2F1ff01265-b9f3-4a0c-a311-443e8a8b6f44%2F4.png)