본문 바로가기

study/Back-end

[Back-end/Spring] 스터디 3주차 정리

진도 : 자바(섹션3-상속및클래스) + 스프링 입문(섹션4,5)

자바 프로그래밍 입문 강좌 - https://www.inflearn.com/course/실전-자바_java-renew
스프링 입문 - https://www.inflearn.com/course/스프링-입문-스프링부트

 

나의 키워드 : DI / 스프링 컨테이너 / 어노테이션 / 인스턴스

스터디원의 키워드 : DI & IoC / 스프링 빈 /  컴포넌트 스캔 / 자동 의존관계 주입 / 타임리프

 

Q.  DI는 IoC 사용을 필수로 요구하지 않는다? (아래의 출처 내용에서 나온 질문)

IoC 컨테이너를 사용하지 않는 DI가 존재한다. (스프링 컨테이너를 IoC 컨테이너라고도 부른다.)

 

IoC 컨테이너를 사용하면 직접 등록하지 않아도 되기 때문에 의존성 등록 비용이 적다.

하지만 IoC 컨테이너에서 의존성이 잘못 구성되었을 경우, 컴파일 에러 대신 런타임 에러가 발생 ➡️ Weakly typed

 

IoC 컨테이너를 사용하지 않는 DI는 Weakly typed 문제를 해결해주는 도구로 사용될 수 있다.

DI에서 IoC 컨테이너의 사용 여부는 의존성 등록비용과 Weakly typed 비용을 고려하여 사용해야 한다.

 

* 사람마다 의견이 다른 것 같기도 하다.

 

 

DI는 IoC를 사용하지 않아도 된다

Dependency Injection(DI)을 얘기할 때 빠지지 않는 글이 있다. Martin Folwer의 Inversion of Control Containers and the Dependency Injection pattern이다. 이 글에서 DI란 용어가 생겨나게된 배경을 볼 수 있다. 관련한 내용

jwchung.github.io

 

아래의 개념 공부는 출처의 글을 정리하여둔 것