🌱Spring[스프링]/SpringBoot[스프링부트]

빈 등록과 관리 방법의 다양한 패턴스프링에서는 빈을 등록하고 관리하는 다양한 방법을 제공하고, 개발자가 애플리케이션 요구사항에 맞는 방식을 선택할 수 있습니다. 수동 등록과 자동 등록의 차이, 조건부 빈 등록, 여러 빈 중 우선순위를 설정하는 방법 등 다양한 패턴을 사용하면 더욱 유연한 애플리케이션 구성이 가능합니다.수동 빈 등록스프링에서는 @Bean 애노테이션을 사용해서 수동으로 빈을 등록할 수 있습니다. 이 방법은 주로 외부 라이브러리나 복잡한 초기화 로직을 가진 객체를 빈으로 등록할 때 사용합니다. @Bean 애노테이션은 @Configuration 클래스 내부에서 사용되며, 스프링이 이 메서드를 호출해서 반환된 객체를 빈으로 등록하게 됩니다.@Configurationpublic class AppCo..
스프링 빈 스코프 개요스프링에서 빈 스코프는 빈의 생명주기를 정의하는 중요한 개념입니다. 즉, 스프링 IoC 컨테이너가 빈을 언제 생성하고 어떻게 관리하고, 어떻게 주입할지 결정하는 설정입니다. 스프링은 다양한 스코프를 지원하고, 각각의 스코프는 특정 시점에서 빈을 어떻게 주입할지를 정의합니다. 스프링에서 지원하는 대표적인 빈 스코프에는 아래와 같은 방법이 있습니다.싱글톤(Singleton) : 기본 스코프로, 애플리케이션 전체에서 하나의 빈 인스턴스만 생성하고 공유합니다.프로토타입(Prototype) : 요청할 때마다 새로운 빈 인스턴스를 생성합니다.Request : 웹 애플리케이션의 HTTP 요청 시마다 새로운 빈을 생성합니다.Session : HTTP 세션당 하나의 빈 인스턴스를 생성하고, 세션이 ..
IoC 컨테이너의 동작 방식스프링 IoC 컨테이너는 애플리케이션 내에서 사용되는 빈을 생성하고 관리하며, 의존성을 자동으로 주입해 모듈 간 결합을 최소화합니다. 빈의 생명주기는 빈이 생성되고 의존성이 주입된 후, 애플리케이션에서 사용되고 소멸되는 일련의 과정을 의미합니다. 이 모든 과정은 IoC 컨테이너에 의해 자동으로 처리됩니다. 빈의 생성 및 의존성 주입 과정은 아래와 같은 단계로 이루어집니다.빈 생성 및 의존성 주입 과정 흐름 빈 정의 로딩 : 먼저, XML 파일이나 Java Config 등에서 빈을 정의합니다. 이 정의에는 클래스, 초기화 메서드, 의존성 주입 방식 등이 포함됩니다.빈 인스턴스 생성 : 컨테이너는 빈 정의를 바탕으로 빈 인스턴스를 생성합니다. 생성자나 팩토리 메서드를 통해 객체가 ..
스프링 IoC 컨테이너 계층 구조스프링 프레임워크에서 IoC(제어의 역전) 컨테이너는 애플리케이션 구성 요소의 생성과 의존성 주입을 관리하는 중요한 역할을 합니다. 특히 대규모 애플리케이션에서는 다양한 빈을 효율적으로 관리하기 위해 IoC 컨테이너의 계층 구조가 필수적입니다. IoC 컨테이너는 부모-자식 관계의 계층 구조를 가지고 있으며, 이를 통해 애플리케이션을 모듈화 하고 빈 관리를 체계적으로 할 수 있습니다. 이러한 구조는 웹 애플리케이션에서 루트 컨텍스트와 서블릿 컨텍스트로 나뉘며, 각 컨텍스트가 서로 다른 역할을 담당합니다.IoC 컨테이너 계층 구조의 개요스프링 IoC 컨테이너는 빈(Bean)의 생성, 관리, 의존성 주입을 담당하는 핵심 모듈입니다. 스프링 애플리케이션은 주로 루트 컨텍스트와 서..
DI(Dependency Injection, 의존성 주입) 가이드DI는 객체가 직접 자신의 의존성을 관리하지 않고, 외부에서 필요한 의존성을 주입받는 설계 패턴을 의미합니다. 이는 객체 간의 결합도를 낮추어 코드의 유지보수성과 확장성을 높여주며, IoC의 핵심적인 구현 방식 중 하나입니다. 스프링 프레임워크에서는 IoC 컨테이너가 객체를 생성하고 의존성을 주입해 주며, 이를 통해 객체 간의 강한 결합을 피할 수 있습니다.IoC와 DI의 관계 : IoC는 객체의 제어권을 외부로 넘김으로써 객체 간의 결합도를 낮추는 원리를 의미합니다. DI는 이 IoC의 구체적인 구현 방법으로, 객체가 직접 의존성을 생성하지 않고 스프링 IoC 컨테이너가 대신 객체를 생성하고 주입해 주는 방식입니다.DI 방식의 차이점과 성..
IoC(제어의 역전)란?IoC(Inversion of Control. 제어의 역전)는 객체지향 프로그래밍에서 매우 중요한 소프트웨어 설계 원칙 중 하나로, 애플리케이션의 흐름 제어를 개발자가 직접 처리하지 않고, 외부 프레임워크나 컨테이너가 관리하도록 하는 개념입니다. 즉, 객체의 생성 및 의존성을 외부에서 관리해서 개발자가 더 이상 객체 생성과 그에 따른 의존성 관리에 집중할 필요가 없어서 애플리케이션의 유연성과 유지보수성을 높이고, 테스트가 용이한 구조를 만듭니다. 스프링 프레임워크는 이 IoC 개념을 핵심 원리로 사용하고 있으며, 이를 구현하기 위해 IoC 컨테이너를 사용하며, 주로 DI(Dependency Injection, 의존성 주입)을 통해 주로 구현됩니다.IoC와 DI의 관계IoC는 DI를..
Gyunny
'🌱Spring[스프링]/SpringBoot[스프링부트]' 카테고리의 글 목록