본문 바로가기

Spring25

Bean Scope - 스프링 공식문서가 말하는 빈 스코프 들어가기에 앞서, 해당 문서는 스프링 공식 문서를 번역한 포스트 입니다. 해당 문서에서는 XML 기반으로 빈 설정을 하고 있는데 이는 어노테이션 기반으로도, 자바코드로도 설정 할 수 있습니다. 개인적으로 공부 할 요량으로 한 포스팅이다 보니 번역 상태가 굉장히 좋지 않습니다. 가능하시다면 원문을 읽으시는것을 추천 드립니다. 빈 정의를 생성한다는 것은, 클래스의 실제 인스턴스를 만드는 방법을 알려주는 일종의 레시피를 만드는 것과 같다고 할 수 있습니다. 빈 정의를 일종의 레시피로 본다는 것은 우리가 레시피 하나만 있으면 여러 객체의 인스턴스를 만들 수 있다는 점에서 굉장히 중요합니다. 객체 생성에 필요한 의존성이나 설정들을 제어하는 것 이외에도 우린 빈 정의(Bean Definition)를 통해 해당 객체.. 2024. 1. 26.
Lazy-initialized Beans 기본적으로 ApplicationContext는 초기화 단계에 모든 싱글턴 빈을 생성하고 설정합니다. 싱글턴 빈은 단 하나만 만들어져 공유되는 빈 만약 prototype이라면 매 요청시마다 새로 만들어야 하기 때문에 초기화 단계에 미리 만들 필요가 없기 때문이라 생각함 대다수의 경우 설정이나 환경오류를 즉각 발견할 수 있기 때문에 이런 pre-instantiation이 유용합니다. 하지만 싱글턴 빈의 pre-instantiation을 원하지 않는 경우 lazy-initialized 되도록 빈 설정을 할 수 있습니다. lazy-initialized빈은 IoC 컨테이너에게 자신이 처음 요청된 시점에 빈을 생성하라고 알려줍니다. 만약 초기화 단계에 인스턴스화 되는 싱글턴 빈이 lazy-initialized 설정.. 2024. 1. 24.
Dependency Injection - 스프링 공식문서가 말하는 의존성 주입 의존성 주입(Dependency Injection, DI)은 펙토리 메서드를 통해 객체가 생성되거나 반환된 후 객체 인스턴스에 설정된 속성으로, 또는 생성자 인수나 펙토리 메서드에 대한 인수를 통해서만 객체가 가진 의존성을 정의하는 프로세스이다. 컨테이너는 정의된 의존성을 바탕으로 빈이 생성될 때 필요한 의존성을 주입해준다. 의존성 주입은 빈이 자신에게 필요한 의존성을 직접 제어하는 방식을 "역전" 시킨 것으로, 이를 IoC(Inversion of Control, 제어의 역전)이라 한다. 의존성 주입을 사용하면 더 깔끔한 코드를 짤 수 있고, 객체한 결합을 분리하기가 더 용이해진다. 객체는 자신에게 필요한 의존성(다른 객체들)이 어디에 있는지 알 필요도 없고, 직접 찾을 필요도 없어진다. 그 결과로 테스.. 2024. 1. 23.
Bean Overview - 스프링 공식문서가 말하는 빈 스프링 IoC 컨테이너는 하나 이상의 빈을 관리합니다. 빈은 컨테이너에 전달된 Configuration Metadata를 기반으로 생성됩니다. 컨테이너 내부에서 Bean의 정의는 BeanDefinition 객체를 통해 표시되고 다음과 같은 metadata를 가지고 있습니다. 클래스 이름(A Package-qualified class name) : 빈으로 정의하고자 하는 클래스 Bean 동작 구성 요소. : 컨테이너에서 빈이 어떻게 동작할것인지를 나타낸다. ( Bean Scope, LifeCycle callback등) 빈이 작업을 수행하기 위해 필요한 다른 빈들로의 참조. 이러한 참조를 의존성(Dependencies)라 한다. 새로 생성된 객체에 설정한 기타 구성 정보. Connection Pool을 관리.. 2024. 1. 22.
728x90