Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- esp-wroom-32d
- .gitattributes
- c++ Broadcast
- c2678
- MFC
- OpenCPN설치
- 설치 테스트
- LINK2001
- c++ set struct
- 확인할 수 없는 외부 기호
- Console
- git 최초 설정
- 정적 라이브러리에서 MFC 사용
- SQLite3
- Plugins
- Flutter
- sts4
- 사전설치
- wxWidget
- OpenCPN
- git 대용량 파일
- Mqtt
- ExtendWith
- __vsnprintf
- OpenXLSX 한글
- __snprintf
- 의존주입
- _sprintf
- 멀티바이트 문자 집합 사용
- winsock.h Broadcast
Archives
- Today
- Total
세상을 이롭게
[개념정리] DI(의존주입)와 IOC(제어의 역전) 본문
DI 란 무엇인가?
DI(Dependency Injection) 의존주입
객체지향 프로그래밍에서 다른객체를 사용하는 것 == 다른객체에 의존함
예를 들어, A 객체와 B 객체, C 객체가 존재한다고 하자.
이때 A 객체가 B 객체와 C 객체를 사용한다고 할때, A 객체는 B 와 C 객체의 기능에 의존한다고 표현한다.
B와 C 객체를 사용하기 위해 A 객체가 B,C 객체를 직접 생성하여 사용할 수 도 있고,
미리 만들어져 있는 객체를 할당받아서 사용할 수도 있다. == 의존주입
의존주입은 Setter() 와 constructor()로 할 수 있다.
예시코드로 보면
class Member{
String name;
private Member() {}
}
public static void memberDI(Member mb){
Member m = mb; // 약한 결합으로 생성된 것을 주입 받음 <- 의존 주입
}
스프링에서 의존 주입 방법 (자주 사용되는 곳)
1. bean 설정 xml 을 통한 의존 주입 (스프링)
2. Java 코드를 통한 의존 주입 (스프링부트 - 필요한 경우만)
3. 어노테이션을 이용한 의존 주입 (스프링부트)
여기서는 위에 대한 예제 코드는 다루지 않겠다. (하나 하나 설명하기엔 너무 방대하다.)
IOC 란 무엇인가?
IOC(Inversion Of Control) 제어의 역전
직접 객체를 제어하지 않고 컨테이너로 객체의 제어권이 넘어감 을 의미한다.
컨테이너란?
B, C 객체를 생성, 라이프 사이클을 관리, A 객체에 의존주입을 관리해주는 무엇인가를 컨테이너라고 부른다.
그 무엇인가는 스프링이다.
스프링이 객체를 생성하고 라이프사이클을 관리하고, 필요로 하는 객체에 의존주입을 하는 컨테이너이다.
'Spring' 카테고리의 다른 글
02. DB 연동하기 (0) | 2022.11.05 |
---|---|
01. STS4 설치하기 (0) | 2022.11.05 |
SpringBoot_(1)_개발환경 (0) | 2020.02.27 |
SpringBoot_(2)_Securing a Web Application (0) | 2020.02.27 |