Spring/Spring

[Spring] Bean이란?

JoonYong 2024. 3. 5. 22:42

 

1. Spring Bean 이전의 기술: EJB

2000년대 초반 Java 개발에서 주로 사용되었던 기술은 EJB(Enterprise JavaBeans)였습니다. EJB는 엔터프라이즈 애플리케이션 개발을 위한 표준 기술로서, 트랜잭션 관리, 보안, 객체 풀링 등 다양한 기능을 제공했습니다. 하지만 EJB는 다음과 같은 문제점을 가지고 있었습니다.

  • 복잡성: EJB는 매우 복잡한 기술이었기 때문에 배우고 사용하기 어려웠습니다.
  • 무거운 성격: EJB는 자체적으로 많은 기능을 제공했기 때문에 애플리케이션을 무겁게 만들었습니다.
  • 비용: EJB를 사용하려면 서버에 EJB 컨테이너를 설치해야 했기 때문에 비용이 많이 들었습니다.

2. Spring Bean의 탄생

EJB의 문제점을 해결하기 위해 등장한 것이 바로 Spring Bean입니다. Spring Bean은 다음과 같은 특징을 가지고 있습니다.

  • 간단성: Spring Bean은 EJB보다 훨씬 간단하고 사용하기 쉽습니다.
  • 가벼운 성격: Spring Bean은 자체적으로 많은 기능을 제공하지 않기 때문에 애플리케이션을 가볍게 만들 수 있습니다.
  • 무료: Spring Bean은 오픈소스 기술이기 때문에 무료로 사용할 수 있습니다.

3. Spring Bean이란?

스프링 Bean은 간단히 말해서 스프링 IoC(Inversion of Control) 컨테이너에 의해 관리되는 객체입니다.

스프링 IoC 컨테이너는 빈을 관리하는 객체입니다.

Bean 객체는 스프링의 설정 메타 데이터(XML, Java 어노테이션, Java 코드 등)에 의해 생성되고 관리됩니다.

 


4.Spring Bean의 생명주기

스프링 Bean의 생명 주기는 다음과 같습니다:

 

  1. 빈 생성: 스프링 컨테이너는 설정 파일에 정의된 빈을 생성합니다.
  2. 의존성 주입: 스프링 컨테이너는 빈에 필요한 의존성을 주입합니다.
  3. 초기화: 스프링 컨테이너는 빈의 초기화 메서드를 호출합니다.
  4. 사용: 빈은 애플리케이션 코드에서 사용됩니다.
  5. 소멸: 스프링 컨테이너는 빈을 소멸합니다.

 


5. Spring Bean의 범위(Scope)

스프링 Bean은 다양한 범위를 가질 수 있습니다. 가장 흔히 사용되는 범위는 'singleton'과 'prototype'입니다.

  • Singleton: 이 범위는 스프링 컨테이너당 하나의 Bean 인스턴스만을 생성합니다. 이 범위는 기본 범위로, 특별히 설정하지 않으면 모든 Bean은 Singleton 범위를 가집니다.
  • Prototype: 이 범위는 요청할 때마다 새로운 Bean 인스턴스를 생성합니다.

이 외에도 request, session, global session과 같은 웹 관련 범위도 있습니다.

이상으로 스프링 Bean에 대해 알아보았습니다. 스프링 Bean은 스프링 프레임워크의 중심적인 역할을 하므로 이를 잘 이해하고 사용하는 것이 중요합니다. 다음 시간에는 스프링 Bean의 더 깊은 내용을 함께 알아보도록 하겠습니다. 감사합니다.

 

 

 

 

[Reference]

https://www.youtube.com/watch?v=3gURJvJw_T4&t=503s

https://www.youtube.com/watch?v=ShR5CmEUyRY&t=62s