빈(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 |