JAVA(SPRINGBOOT)

IoC, DI, Bean

본듀 2022. 7. 31. 18:32
IoC (Inversion of Control)

IoC는 '제어의 역전'이라고 해석되어 진다.
우리는 일반적으로 A클래스 내에서 B클래스의 객체를 불러와 사용할 때 두 클래스간의 의존성이 생긴다.
많은 클래스들간의 의존성이 생길 때 수많은 생성자를 통해 객체를 생성해야하고
이는 코드의 가독성을 떨어뜨리는 문제가 발생했다.
그래서 우리는 A클래스 내에서 B클래스 객체를 생성하는 방법대신
만들어진 B클래스의 객체를 A클래스에서 사용하는 방법을 사용하게 되었다.
이런 제어 방법을 기존의 제어 흐름과 반대 된다고 하여 제어의 역전, 'IoC'라고 부른다.

DI (Dependency Injection)

DI는 IoC과정에서 
만들어진 B클래스 객체를 A클래스에서 사용할 수 있도록하는 것
즉, A와 B 클래스의 의존성을 만들어주는 것을 의존성 주입, 'DI'라고 칭한다.

Bean

Bean은 Spring IoC 컨테이너가 관리하는 자바 객체를 칭하는 용어이다.
스프링이 DI를 할 수 있게 하기 위해서는 특정 클래스의 객체를 생성할 수 있어야한다.
특정 객체를 생성할 수 있도록 하려면 IoC컨테이너에서 Spring이 객체를 관리하고 있어야하고,
그 관리하고 있는 객체를 Bean이라고 칭한다.

 

이번주에는 IoC, DI, Bean에 대해 내 나름대로 해석한 내용을 정리해보았다.
뭔가 이해가 될 듯하면서도 정확한 의미를 파악하기는 어렵지만,
계속 공부를 하다보면 그 뜻이 정확해질거라 생각한다.
이 부분의 내용은 스프링을 이용하는데 있어 중요한 부분인 것같아
조만한 블로그 글로 다시금 정리할 수 있도록 해야겠다.

'JAVA(SPRINGBOOT)' 카테고리의 다른 글

[SPRING JPA] ORM, JPA, Hibernate  (0) 2022.09.13
API, WAS, HTTP, RESTful API, CORS  (0) 2022.08.10
ORM, SQL, MVC  (0) 2022.08.08
[JAVA] 타입  (0) 2022.07.20
[JAVA] 변수  (0) 2022.07.20