본문 바로가기
컴퓨터 공부/JAVA Web

스프링 프레임워크 - 의존성 주입(DI)

by 구깨비 2021. 8. 21.

* 의존성 주입이란

  우리가 프로그래밍을 할 때는 한 클래스가 다른 클래스의 기능을 사용하기 위해서

개발자가 직접 코드에서 사용할 클래스의 생성자를 호출해서 사용했다.

의존성 주입이란 이런 연관 관계를 개발자가 직접 코딩을 통해 컴포넌트(클래스)에 부여하는 것이 아닌

컨테이너가 연관 관계를 직접 규정하는 것이다.

그러면 코드에서 직접적인 연관 관계가 발생하지 않으므로 각 클래스의 변경이 자유로워진다.(*약한 결합, loosely coupled)

 

+) 강한 결합 vs 약한 결합

 자동차의 에어컨이 고장나면 에어컨만 수리하거나 교체하면 되지만, 만약 에어컨 기능이 자동차 엔진과 관련 있게 설계가 되었다면 자동차의 엔진까지 손봐야하는 문제가 생긴다.

즉, 자동차의 부품은 같은 기능끼리는 강하게 결합하고, 큰 관련이 없는 기능과는 서로 영향을 주지 않게 만들어야 좋은 자동차라고 할 수 있다.

 프로그램도 마찬가지로  서로 관련이 있는 기능은 강하게 결합하고, 관련이 없는 기능들은 약하게 결합해야 좋은 프로그램이라 할 수 있다.

 

* 의존성 주입 구현 방법

 XML 또는 annotation 사용

 

 

* xml 사용시 bean 태그에 사용되는 여러가지 속성들

속성 이름 설명
id 빈 객체의 고유 이름으로, 빈 id를 이용해 빈에 접근한다
name 객체의 별칭
class 생성할 클래스, 패키지 이름까지 입력해야함
constructor-arg 생성자를 이용해 값을 주입시 사용
property setter를 이용해 값을 주입시 사용

 


코드없이 말로는 이해가 잘안된다.

간단하게 외부에서 dependency를 주입해준다라고 이해..

 

++)) 참고하기(뉴렉처 유튜브)

https://www.youtube.com/watch?v=WjsDN_aFfyw

https://www.youtube.com/watch?v=QrIp5zc6Bo4

https://www.youtube.com/watch?v=gtqctgfywn4&list=PLq8wAnVUcTFWxnsrMu5kS_jt_o8gpEiTR&index=5 

 

'컴퓨터 공부 > JAVA Web' 카테고리의 다른 글

스프링 프레임워크의 mvc 구조도  (0) 2021.08.22
스프링 프레임워크  (0) 2021.08.21
JSP 파일 업로드  (0) 2021.08.19
JSP 표준 태그 라이브러리(JSTL)  (0) 2021.08.18
JSP 표현 언어  (0) 2021.08.18

댓글