본문 바로가기
  • 시 쓰는 개발자
Spring

Bean에 대하여

by poetDeveloper 2024. 3. 8.

IoC 글에서 이미 썼던 내용이지만, Bean에 대한 내용만 따로 쓰고싶었고, 그중에서도 자주 들여다볼 내용만 따로 추려냈다. Bean에 대한 내용들을 더 추가해보려 한다.

 

Bean

  •  : 스프링 컨테이너(IoC컨테이너)가 관리하는 객체
  • 빈 팩토리 : 빈들을 관리하는 컨테이너
  • 컨테이너 : 객체들이 담긴 공간을 의미한다. 객체의 생명주기를 관리하여 개발자는 로직에만 집중할 수 있게 도와준다.

왜 Bean으로 등록할까?

  Bean은 IoC컨테이너가 관리하는 객체이다. 객체별로 빈인 객체도 있고, 빈이 아닌 객체도 있을 것이다. 단순히 객체를 만들었다고 해서 다 빈은 아니라는 것이다. 스프링이 말하는 Bean이란, ApplicationContext가 "알고있는" 객체이다. 그리고 위에서 언급했듯이 그러한 빈끼리만 의존성 주입이 가능하다.

  그렇다면 왜 빈으로 등록하는걸까? 일단 빈으로 등록되면 이 빈이 싱글톤으로 관리된다. 싱글톤으로 관리하는 이유는 메모리 절약 목적이 크다. 컨트롤러, 서비스, 레포지토리는 필드에 어떤 상태를 저장하며 관리할 이유가 없고, 여러번 인스턴스를 생성할 이유가 없기에 싱글톤으로 관리하기 적합한 불변객체이다. 이렇게 인스턴스를 만들어 보관할 때, 해당 클래스의 내용들을 담고 있는데, 인스턴스 하나는 메모리가 크지 않기 때문에 이런저런 변환작업 없이 객체로써 온전히 빈으로 만들어 컨테이너에 보관하게 된다.

'Spring' 카테고리의 다른 글

Controller vs RestController  (0) 2024.03.09
RequestBody, ResponseBody  (0) 2024.03.08
Portable Service Abstraction  (2) 2024.03.04
Aspect Oriented Programming  (0) 2024.03.04
Inversion of Control (Bean내용 포함)  (0) 2024.03.03