정리자 - 이태혁(Lee, TaeHyuk)
여태까지 우리는 Singleton Pattern에 의해 Spring Bean은 유일성이 보장된다 라고 배웠다. 그리고 그 Spring Bean은 Spring Container에 등록되면 스프링 컨테이너가 내려갈때까지 살아 있는 걸로 알고 있다. 하지만, Spring Bean은 필요에 따라 어느 순간에 소멸시켜야 하는 경우도 생기고 여러개가 필요할때도 생긴다. 이런 것을 **범위(Scope)**으로 설정한다.
<aside> 💡 한 마디로, 빈이 존재할 수 있는 범위를 뜻한다. (언제부터 언제까지 빈이 살아있을 거야 - 빈의 LifeCycle의 범위를 결정해준다.)
</aside>
Spring Bean의 Scope 종류는 다음과 같이 나열 할 수 있다.
Singleton
ProtoType
웹 관련 스코프
Bean Scope의 등록 방식은 다음과 같이 @Scope annotation을 사용한다. (default - Singleton)
@Scope("prototype")
@Component
public class Bean{}
디폴트로 Bean을 생성하면 싱글톤 스코프 빈이 생성된다. 그리고 싱글톤 스코프 빈은 유일성이 보장되기 때문에 항상 같은 인스턴스를 호출해온다.