반응형
1. 객체 A는 B,C의 기능을 사용한다고 볼수있지만, 객체 B,C의 기능에 의존한다.
2. A가 B,C의 기능이 필요한경우 외부에 있는 갑한테 B,C의 기능을 주입받는다.
이렇게 외부에서 의존성을 주입시켜주고 관리하는것이 JAVA에서는 "Spring" 이다.
위의 1,2번 케이스를 개발자가 직접 해당 객체의 라이프사이클들을 다 관리하면(강한결합) 힘들다.
따라서 외부에서 객체B,C와 같이 만들어서 주입만시켜주는 경우(약한결합) 개발자가 편해진다.
객체지향 프로그래밍에서는 위처럼 "약한결합"을 사용하기 위해 Spring을 이용한다.
아래는 예시코드이다.
위처럼 객체를 직접 만들면 강한결합,
가져오면 약한결합이다.
Why 약한결합사용?
class에서 생성자를 private으로 바꾸면 강한결합에서는 인식할수없다.
하지만 약한결합은 만들어진 것을 주입받는것이라서 문제가 발생하지 않는다.
주입 방식은 2가지
Dependency Injection(의존성 주입 : 조립해주는 역할)
1. setter를 통해서 부품을 조립해주는 방법
2. 생성자를 통해서 조립하는 방법
이렇게 하면 스프링에서 조립해준다: IoC컨테이너
반응형
'웹(Web) > 백엔드(Backend)' 카테고리의 다른 글
스프링 IoC 컨테이너 사용(ApplicationContext 사용) (0) | 2021.04.05 |
---|---|
IoC컨테이너(Inversion of Control)란 (0) | 2021.04.04 |
서블릿 매핑(Servlet Mapping)이란 (0) | 2021.04.04 |
스프링(Spring) 프로젝트의 폴더 구조 (0) | 2021.03.29 |
<우아한 스프링 부트> 정리 (0) | 2021.03.25 |