spring 이나 springboot 코드를 보게 되면 Autowired라는 부분이 종종 보입니다.
구글에 검색해보면 의존성 주입을 한다는 말이 나오는데 이 말만으로는 이해가 쉽게 가지 않습니다.
스프링을 잘 이해하려면 IoC(Inversion of Control; 제어의 역전)과 DI(Dependency Injection;의존성 주입)라는 개념을 알아야 합니다.
처음 자바를 배울 때 어떤 객체를 사용하려면 new 키워드를 사용해 객체를 생성한다고 배웁니다.
public class A {
b = new B();
}
하지만 spring에서는 객체를 직접 생성하거나 제어하지 않고 외부에서 관리하는 객체를 가져와서 사용합니다. 이것을 IoC(제어의 역전)이라고 하고 여기서 객체는 스프링 컨테이너가 자동으로 관리해줍니다.
이렇게 스프링 컨테이너가 생성하고 관리하는 객체를 빈(Bean)이라고 합니다. 이 빈의 생성 소멸의 생명주기를 개발자가 신경쓰지 않고 스프링 컨테이너가 알아서 관리해줍니다.
빈(Bean) 추가설명
아래 코드를 보면 위 코드와 달리 어디선가 가져온 객체를 사용하고 있다는 것을 알 수 있습니다.
public class A {
@Autowired
private B b;
}
스프링에서는 DI( 의존성 주입)을 통해 이것을 구현합니다.
@Autowired 어노테이션을 붙이면, A클래스 안에 B 타입의 객체 b가 생성됩니다.
'대외활동 > DRACONIST-백엔드' 카테고리의 다른 글
07. ec2 인스턴스만들기 부터 도커. DRACONIST (0) | 2025.03.04 |
---|---|
04. EC2부터 RDS 연결하기 DRACONIST (0) | 2025.02.24 |
03. validation유효성 검사 DRACONIST (0) | 2025.02.20 |
스스로 공부하는 스프링부트. 10단원 REST API~12단원 (1) | 2025.02.14 |
스스로 공부하는 스프링부트. 6,7,8,9단원 CRUD완성 (0) | 2025.02.13 |