웹 개발

[Spring] Bean의 생명주기

_KH_ 2025. 6. 9. 17:30

스프링의 객체 생명주기에 대해 작성하고자 한다.

 

1. "객체의 생명주기"란? 

: 객체가 메모리에 생성되어 사용된 후 제거되기까지의 전 과정.

 

2. "Bean"이란?

먼저, "Bean"이란, 원래의 자바 프로젝트라면 개발자가 직접 new 연산자를 사용해서 객체를 생성하고 의존 관계를 정립해주어야 하는데, 스프링에서는 스프링 컨테이너가 대신 객체를 생성하고 관리해주는 것을 말한다. 

스프링이 내부적으로 new를 통해 객체를 생성하고 필요한 곳에 DI를 해준 뒤 컨테이너에 빈으로 등록되면 해당 객체는 스프링 컨테이너가 관리하게 되며 코드의 결합도를 낮추고, 유지보수성을 높혀준다.

 

3. Spring Bean의 생명주기 단계

1) 해당 클래스의 정보를 빈으로 등록 ( @Component 등의 어노테이션을 통해 스프링 컨테이너에 객체 등록. 스프링의 관리 대상이 됨) (객체 생성 전)

2) 객체 생성 (개발자가 어노테이션 등을 달아두면 스프링 컨테이너가 해당 클래스를 내부적으로 new 해서 객체를 생성한다.)

3) 의존성 주입(@Autowired, 생성자 주입 등을 통해 다른 빈을 주입해준다.)

(ex. OrderService에 Member 정보가 필요함 → OrderService에 MemberRepository 주입)

4) 초기화 설정

5) 의존성이 주입된 빈을 비즈니스 로직에 사용

6) 소멸

 

→ 스프링은 개발자가 객체를 직접 생성하고 관리하지 않아도 자동 객체 생성 + 의존성 주입 과정을 도와주는 IoC (제어의 역전) 역할을 수행한다.