✔️ Bean이란?
Bean은 Spring 프레임워크에서 Spring 컨테이너에 의해 관리되는 객체로, Spring Boot는 Spring 컨테이너가 객체, 즉 Bean을 관리하는 방식으로 동작한다. 자바 객체를 Bean으로 등록하면, 애플리케이션이 실행될 때 Spring이 그 생명주기와 의존성 주입을 책임진다.
✔️ Bean의 등록 방법
Bean을 등록하는 주요 방식으로는 크게 두 가지를 들 수 있다.
- 컴포넌트 스캔(Component Scan)
- 자바 기반 Bean 설정(Java Config)
컴포넌트 스캔(Component Scan)
클래스 선언부에 특정 어노테이션을 붙여 Spring이 자동으로 Bean을 찾고 등록하게 하는 가장 일반적인 방식이다.
@Service
public class BasicChannelService implements ChannelService {
private final ChannelRepository channelRepository;
private final ReadStatusRepository readStatusRepository;
private final MessageRepository messageRepository;
// 중략 ...
}
- 방법
- @Service, @Repository, @Controller 등의 어노테이션을 클래스 선언부에 사용
- 장점
- 어노테이션만 붙이면 되므로 편리하고 코드가 간결해짐
- 해당 클래스가 어떤 역할(서비스인지, 컨트롤러인지 등)을 수행하는지 직관적으로 이해 가능
- 단점
- 외부 라이브러리 클래스에는 어노테이션을 붙일 수 없음
- 어떤 Bean들이 등록되어 있는지 한 눈에 파악하기 어려움(가독성이 떨어짐)
자바 기반 Bean 설정(Java Config)
설정 전용 클래스를 만들고, 메소드 위에 @Bean 어노테이션을 붙임으로써 직접 Bean을 생성/반환하는 방식이다.
@Configuration("configurationSection02")
public class ContextConfiguration {
@Bean(name="member")
public MemberDTO getMember() {
return new MemberDTO(1, "user01", "pass01", "홍길동");
}
}
- 방법
- @Configuration 클래스 안에 @Bean 어노테이션을 사용한다.
- 장점
- 외부 라이브러리의 객체도 Bean으로 등록 가능
- 한 곳에 관리할 수 있어 유지보수에 유리
- 단점
- 매번 설정 클래스를 만들고 빈 등록 메소드를 작성해야 함(번거로움)
✔️ Bean 등록의 사용 전략
각각의 장단점을 고려해보았을 때, 다음과 같은 방식으로 Bean을 등록하면 효과적이다.
- 직접 작성하는 서비스/컨트롤러 등은 컴포넌트 스캔 방식을 사용
- 외부 라이브러리나 공통 설정의 경우 자바 기반으로 Bean을 설정
'codeit sprint backend > weekly paper' 카테고리의 다른 글
| [6-2] Spring MVC (0) | 2026.02.27 |
|---|---|
| [6-1] AOP(Aspect Oriented Programming) (0) | 2026.02.27 |
| [5-1] 웹 서버 (Web Server) vs WAS (Web Application Server) (0) | 2026.02.13 |
| [4] Spring (0) | 2026.02.09 |
| [3-2] 알고리즘과 자료구조: 시간 복잡도 (0) | 2026.01.26 |