728x90
요청을 할 때 마다 객체를 새로 생성하는 것은 낭비이다. -> 싱글톤 등장
싱글톤의 문제
- 구현 코드가 길다.
- 테스트 하기 어렵다.
- DIP, OCP 원칙 위반 가능성이 높다.
- 유연성이 떨어지고 자식 클래스를 만들기 어렵다.
-> 스프링 컨테이너 등장! ( @Bean )
싱글톤 방식의 주의점
- 무상태로 설계 해야 한다.
- 특정 클라이언트에 의존적인 필드가 있으면 안된다.
- 가급적 읽기만 가능해야 한다.
- 필드 대신 공유되지 않는 것들을 사용해야 한다.
싱글톤이 보장 되는 이유
- @Bean이 붙은 메서드마다 이미 스프링 빈이 존재하면 존재하는 빈을 반환하고,
스프링 빈이 없으면 생성해서 스프링 빈으로 등록하고 반환하는 코드가 동적으로 만들어진다.
# @Bean만 사용해도 스프링 빈으로 등록되지만, 싱글톤을 보장하지 않는다.
728x90
'🟢 개념 정리 > Spring' 카테고리의 다른 글
| 생성자 주입이란? (0) | 2022.08.03 |
|---|---|
| 컴포넌트 스캔, @Autowired (0) | 2022.08.03 |
| @Configuration, @Bean (0) | 2022.08.02 |
| 테스트 코드, @Test (0) | 2022.08.02 |
| 좋은 객체 지향 설계의 5가지 원칙 ( SOLID ) (0) | 2022.08.01 |