티스토리 뷰
의존성이란?
- 객체 지향 프로그래밍에서 Dependency, 의존성은 서로 다른 객체 사이에 의존 관계가 있다는 것을 말한다.
- 즉, 서로 다른 두 객체가 독립적이지 못하고 서로 영향을 주는 관계를 의미한다.
(ex. B 객체가 내부 메서드에서 A 객체의 변수를 참조) - 의존하는 객체가 수정되면, 다른 객체도 영향을 받는다.
주입이란?
- 주입 이란 내부가 아닌 외부에서 객체를 생성해서 넣어주는 것을 주입한다고 표현한다. (ex. 생성자 활용)
그럼 의존성 주입은 뭘까?
- DI, 의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 필요한 객체를 받아서 사용하는 것이다.
- 이때 중요한 것은 의존 관계 역전 법칙을 지켜주는 것이다.
이 법칙을 지켜주면 독립적인 객체 관계를 구성할 수 있고 아래와 같은 장점을 얻을 수 있다.- Unit Test가 용이해진다.
- 코드의 재활용성을 높여준다.
- 객체 간의 의존성(종속성)을 줄이거나 없앨 수 있다.
- 객체 간의 결합도를 낮추면서 유연한 코드를 작성할 수 있다.
의존 관계 역전 법칙
- 의존 관계 역전 법칙은 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있는 구조를 말한다. 이 법칙은 다음 두 가지 특징이 있다.
- 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
- 추상화(ex. protocol)는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.
- 단순히 외부에서 의존성을 주입하는 것 만으로 의존성 주입이라고 부르지 않는다. 의존 관계 역전 법칙으로 의존 관계를 분리시켜 주어야 진정한 의존성 주입이고 비로소 서로 독립적인 객체 관계가 이루어진다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 여행경로
- 클린 코드
- swiftc
- 의존성
- clean code 정리
- 면접질문
- 메모리 순환참조
- clean code
- ios simulator
- 전처리기
- 생명 주기
- CLANG
- SwiftUI
- 링커
- 의존관계역전법칙
- Swift
- 알고리즘
- 학교 과제
- 이분탐색
- 주입
- XCFramework
- 단어변환
- 클린 코드 정리
- 클린 코드 줄거리
- 프로그래머스
- BFS
- dfs
- 순환참조
- ios
- XcodeBuildSystem
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함