inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

DI와 DIP ★★★

의존성 주입 관련 질문

461

섬세한 햄스터

작성한 질문수 10

1

안녕하세요. 큰돌님 항상 좋은 강의 감사합니당!

 

 

교재에 있는 DI 관련 그림들인데 두 그림의 화살표 방향이 다른데 첫번째 그림이 잘못된건가요..? 추상화는 세부사항에 의존하면 안되는데 첫번째 그림은 Dependency Injector가 세부사항에 의존하는 구조로 되어있어요!

 

추가적으로 질문 하나 더 드립니다.

 

의존관계역전원칙

  1. 상위 모듈은 하위 모듈에 의존해서는 안 된다. 둘 다 "추상화"에 의존해야 한다.

  2. "추상화"는 세부사항에 의존해서는 안 된다. 세부 사항은 "추상화"에 따라 달라져야 한다.

여기에서 "추상화"는 예제에서의 Developer와 같은 Dependency Injector를 의미하는 것 같은데 제대로 이해 한건가요..?

면접 운영체제 기술면접

답변 1

1

큰돌

안녕하세요 햄스터님 ㅎㅎ

볼때마다 느끼는 건데 햄스터라는 아이디 정말 좋네요... ㅎㅎ

 

교재에 있는 DI 관련 그림들인데 두 그림의 화살표 방향이 다른데 첫번째 그림이 잘못된건가요..?

>> 아니요. 저렇게 의존성을 주입한다. 라는 의미입니다.

A <- B 이렇게 의존성을 갖는다. 라면.

A -> B 이렇게 의존성을 주입한 상태

라고도 보시면 됩니다.

 

의존성역전이라는 것 자체가

원래는

A -> B라는 상태에서

A <- B라는 상태로 만들어서 의존관계를 역전하는 건데요.

 

A <- B = B는 A에 의존한다.

이를

A -> B로 의존성을 주입했다라고도 합니다.

(강제적으로 의존성주입 객체를 만들어 주입한 경우 저런 워딩을 많이 씁니다.)

 

 

의존관계역전원칙

  1. 상위 모듈은 하위 모듈에 의존해서는 안 된다. 둘 다 "추상화"에 의존해야 한다.

  2. "추상화"는 세부사항에 의존해서는 안 된다. 세부 사항은 "추상화"에 따라 달라져야 한다.

여기에서 "추상화"는 예제에서의 Developer와 같은 Dependency Injector를 의미하는 것 같은데 제대로 이해 한건가요..?

>>

음.. 살짝 다릅니다. 추상화는 저런 의미를 가지고 그 추상화를 구현할 때 쓰이는 객체가 바로 Dependency Injector가 되는 것입니다.

이렇게 정리하면 될거 같습니다.

  1. 상위 모듈은 하위 모듈에 의존해서는 안 된다. 둘 다 "추상화"에 의존해야 한다.

  2. "추상화"는 세부사항에 의존해서는 안 된다. 세부 사항은 "추상화"에 따라 달라져야 한다.

그리고 추상화는 Dependency Injector를 기반으로 구현할 수 있다.

 



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

0

섬세한 햄스터

답변 감사합니다!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

53

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

91

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

103

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

78

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

201

1

회선과 대역폭의 관계

0

62

2

44강 질문

0

95

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

67

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

107

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

72

2