일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- session
- flask
- 생명주기 콜백
- real time web
- python
- programmers
- server send event
- web
- oauth
- JPA
- cookie
- hanghae99
- Stream
- Java
- WIL
- jenkins
- spring
- html
- 항해99
- SseEmitter
- Project
- bean
- Spring Security
- jQuery
- JWT
- DI
- Hibernate
- Anolog
- javascript
- google oauth
- Today
- Total
끄적끄적 코딩일지
[Spring 기초] IoC, DI, Bean 개념 본문
의존관계(Dependency)란?
객체지향 프로그래밍에서 한 객체가 다른 객체를 사용한다는 것은 다른 객체를 생성하거나 다른 객체의 Method를 호출하는 행위를 말한다. 이를 호출하는 객체가 생성하거나 Method를 호출하는 객체를 의존한다고 표현한다.
Spring에서 IoC
Spring은 IoC(제어의 역전, Inversion of Control)를 지원하는 프레임워크로써 객체의 생성과 소멸같은 라이프사이클을 Spring 프레임 워크가 제어하고 있다. IoC를 사용함으로써 얻을 수 있는 장점은
1. 느슨한 연관관계를 맺음으로써 결합도를 낮춘다.
2. 프로젝트 유지보수가 용의하다.(수정이 최소화 된다.)
3. 메모리 관리가 효율적이다.
등이있다. 그러면 Spring에서 IoC으로 객체를 관리하는 방법을 사용하기위해 알아야 할것은 2가지다. 객체를 프레임워크에 맡기는 방법(Bean 등록)과 프레임워크에서 관리하고있는 객체를 호출하는 방법(DI, Dependency Injection, 의존관계 주입) 이다.
https://blablacoding.tistory.com/83
DI(Dependency Injection)
의존관계 주입이라는 의미로 필요한 객체를 생성하거나 제어하는것이 아니라 외부에서 결정하여 연결하는 객체 관리 기법이다. Spring에서 개발자는 추상화 객체인 interface(사용되는 Method 정의만 해둔것)를 사용하고 Spring에서 실제 사용되는 구현체를 주입하게 함으로써 모듈간 결합도가 낮아지고 유연성이 높아진다. 참고로 Spring에서 관리하는 객체들을 모아둔것을 IoC Container 혹은 DI Container라고 한다.
Bean
Spring에서 관리하는 객체를 의미한다. 기본적으로 싱글톤 패턴으로 관리하며 필요에 따라 다른 디자인 패턴으로 사용 가능하다. Java에서 사용되는 대표적인 디자인 패턴은 아래글을 참고하면된다.
https://dailyheumsi.tistory.com/218
'Spring' 카테고리의 다른 글
[Spring 기초] Hibernate 다루기 (0) | 2022.06.05 |
---|---|
[Spring 기초] Spring Security 사용하기 (0) | 2022.06.04 |
[Spring 기초] JPA 사용하기 (0) | 2022.06.01 |
[Spring 기초] @Qualifier, @Primary (0) | 2022.05.30 |
[Spring 기초] Bean 등록 및 사용하기(Autowired) (0) | 2022.05.30 |