인프런 커뮤니티 질문&답변

leesy960909님의 프로필 이미지
leesy960909

작성한 질문수

김영한의 실전 자바 - 중급 2편

제네릭 활용 예제

제네릭클래스는 타입매개변수를 통해 타입을 결정하는데 이 타입을 메인에서 전달받는다면 의존성 주입과 IoC로 볼수 있나요?

작성

·

72

1

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
제네릭클래스는 타입매개변수를 통해 타입을 결정하는데 이 타입을 메인에서 전달받는다면 의존성 주입과 IoC로 볼수 있나요?
제가 생각하는 IoC는 한 오브젝트에서 무언가를 결정해야하는데 이것이 다른 오브젝트에 의해 결정되는 것입니다.
이때 제 기준으로는 제네릭클래스는 내부적으로 타입을 결정해야하지만 이 타입이 메인과 같은 함수에 의해 타입을 전달받아 전달받은 타입으로 타입을 결정하므로 IoC에 부합한다고 생각합니다.
또한 외부에서 타입을 주입받으므로 의존성 주입에도 부합하다고 생각합니다.
혹시 제 생각이 틀렸나요?

답변 1

2

안녕하세요. leesy960909님, 공식 서포터즈 ~입니다.

IoC와 제네릭은 비슷한 면이 있지만 취지가 다르다고 할 수 있습니다.

 

IoC는 A객체가 B객체를 의존하고 있다고 할 때 B 객체의 생명주기 관리를 외부에서 함을 말합니다. B객체의 생성과 소멸에 관해 A가 관여할 수 없고, A가 어떤 B객체를 사용할지는 런타임에 결정됩니다.

 

반면 제네릭은, 타입안정을 위해 도입한 개념입니다. 코드의 실행흐름에 관여할 수 없으며 오로지 타입안전성과 재사용성을 위해 도입한 개념으로, 제네릭 타입의 매개변수는 컴파일 타임에 결정된다는 차이가 있습니다.

 

감사합니다.

leesy960909님의 프로필 이미지
leesy960909

작성한 질문수

질문하기