공부 노트

빈(Bean)이란?

미로910 2024. 10. 2. 12:52

빈(Bean)이란?

 

  • Spring 컨테이너가 관리하는 자바 객체입니다.
  • 애플리케이션 내에서 사용할 객체들을 빈으로 정의하고, Spring이 이 객체들을 생성, 초기화, 의존성 주입, 소멸까지 관리합니다.
  • 이러한 빈은 애플리케이션의 설정 파일(주로 XML, 자바 기반의 설정 클래스 등)이나 애너테이션을 통해 정의됩니다.

 

왜 빈으로 등록해야 하는가?

(ex: 컨테이너에 빈 등록을 해주다.. 왜?)

 

  • 의존성 주입(Dependency Injection)
    • 객체들 간의 의존성을 Spring이 자동으로 관리해줍니다. 개발자는 직접 객체를 생성하거나 그 의존성을 수동으로 처리할 필요가 없습니다. 이는 애플리케이션의 유지보수를 쉽게 하고, 느슨한 결합(loose coupling)을 지원합니다.
  • 객체의 생명주기 관리
    • Spring은 빈 객체의 생명주기(생성, 초기화, 소멸)를 관리합니다. 필요한 시점에 빈을 생성하고, 더 이상 사용하지 않을 때는 소멸시킵니다.
  • 재사용성
    • 빈은 기본적으로 싱글톤 패턴으로 생성되므로, 애플리케이션 내에서 동일한 빈 객체를 여러 곳에서 재사용할 수 있습니다. 이를 통해 메모리 사용을 효율적으로 관리할 수 있습니다.
  • 관심사의 분리
    • 비즈니스 로직과 객체 관리 로직을 분리할 수 있습니다. Spring 컨테이너가 객체 관리를 전담하기 때문에, 개발자는 비즈니스 로직에만 집중할 수 있습니다.
  • 테스트 용이성
    • 의존성 주입을 통해, 테스트 환경에서 객체들을 쉽게 교체하거나 Mock 객체를 주입할 수 있습니다. 이는 단위 테스트나 통합 테스트를 보다 쉽게 수행할 수 있게 해줍니다.

 

빈 등록 방식

 

  • 애너테이션 방식 (@Component, @Service, @Repository, @Controller)
    • 클래스 위에 이와 같은 애너테이션을 사용하면 해당 클래스가 자동으로 빈으로 등록됩니다.
  • XML 설정 방식
    • XML 파일에서 <bean> 태그를 사용하여 빈을 등록할 수 있습니다.
  • 자바 설정 방식 (@Configuration 및 @Bean)
    • 자바 설정 클래스에서 @Bean 애너테이션을 사용하여 메서드의 반환 값을 빈으로 등록할 수 있습니다.

 

빈으로 객체를 등록함으로써 Spring의 강력한 의존성 주입 기능과 객체 관리 기능을 사용할 수 있어, 더 효율적이고 유지보수가 쉬운 애플리케이션을 개발할 수 있습니다.

 

 

 

 

 

 

'공부 노트' 카테고리의 다른 글

Optional<T> 주요 메서드  (0) 2024.10.02
CRUD란?  (0) 2024.10.02
응답 코드 확인 (꼭 알아 두어야 하는 코드!!)  (0) 2024.10.02
추상화와 다형성  (1) 2024.09.26
스레드란? (스레드/멀티스레드)  (4) 2024.09.25