Spring Boot(76)
-
PostProcessorRegistrationDelegate
PostProcessorRegistrationDelegate는 Spring Framework에서 매우 중요한 클래스이며, 주로 BeanFactoryPostProcessor와 BeanPostProcessor의 등록 및 실행 과정을 관리합니다. 이 클래스는 Spring의 빈 초기화 과정에서 다양한 후처리기를 적절한 순서로 등록하고 실행하는 역할을 하며, 빈 생성 및 설정 과정에서 사용자 정의 로직을 포함할 수 있도록 확장성을 제공합니다.Spring의 후처리기 (Post Processors)Spring에는 두 가지 주요 후처리기 타입이 있습니다:BeanFactoryPostProcessor: 빈 객체들이 생성되기 전에 BeanFactory를 조작할 수 있는 후처리기입니다. 예를 들어, PropertyPlaceh..
2024.10.18 -
GraalVM
GraalVM은 다목적 가상 머신으로, 높은 성능의 Java 실행 환경을 제공할 뿐만 아니라, 다양한 프로그래밍 언어(JavaScript, Ruby, Python, R 등)를 실행할 수 있는 멀티 언어 런타임입니다. 또한, GraalVM은 Ahead-of-Time (AOT) 컴파일러를 제공하여 Java 애플리케이션을 네이티브 바이너리(native binary)로 변환할 수 있는 강력한 기능을 가지고 있습니다. 이 네이티브 컴파일 기능 덕분에, GraalVM은 성능 최적화와 애플리케이션 실행 시간 단축에 중요한 역할을 하며, 서버리스, 클라우드 환경에서 많이 사용됩니다.GraalVM은 Oracle에서 개발되었으며, 자바 애플리케이션의 성능을 높이고 다양한 프로그래밍 언어와의 상호 운용성을 목표로 합니다. ..
2024.10.18 -
Spring Native
Spring Native는 Spring 애플리케이션을 네이티브 이미지로 컴파일하여 성능 최적화와 메모리 사용량 감소를 실현하는 기술입니다. 이 기술은 GraalVM의 네이티브 이미지 컴파일러를 이용하여 Ahead-of-Time (AOT) 컴파일을 수행하고, JVM 기반의 Spring 애플리케이션을 네이티브 실행 파일로 변환합니다. 네이티브 이미지로 빌드된 애플리케이션은 Java 가상 머신(JVM)이 없이도 실행되며, 클라우드, 서버리스 환경 등에서 빠른 시작 시간과 낮은 메모리 사용량을 요구하는 애플리케이션에 적합합니다.Spring Native의 핵심 개념과 특징네이티브 이미지:네이티브 이미지(native image)는 JVM 없이도 직접 실행 가능한 바이너리 파일입니다. Spring Native는 Ja..
2024.10.18 -
AnnotationConfigServletWebServerApplicationContext
AnnotationConfigServletWebServerApplicationContext는 Spring Boot에서 서블릿 기반의 웹 애플리케이션을 실행할 때 사용하는 ApplicationContext의 한 구현체입니다. 이 클래스는 Java Config 기반 설정을 지원하는 동시에, 서블릿 컨테이너와의 통합을 제공하여, 웹 애플리케이션이 동작하는 데 필요한 컨텍스트를 설정하고 관리합니다.Spring Boot에서 웹 애플리케이션을 실행할 때, 애플리케이션의 빈(Bean) 관리, 서블릿 컨테이너 설정, 빈 라이프사이클 관리 등을 자동으로 처리하기 위해 이 컨텍스트를 사용합니다.Spring WebMVC의 Root Application Context 와 Web 전용 Applicaiton Context 계층 ..
2024.10.18 -
AutoConfigurationImportSelector
AutoConfigurationImportSelector는 Spring Boot의 자동 구성(autoconfiguration) 메커니즘에서 중요한 역할을 담당하는 클래스입니다. 이 클래스는 애플리케이션이 시작될 때 필요한 자동 구성 클래스를 동적으로 선택하는데 사용됩니다. Spring Boot에서는 기본적으로 META-INF/spring.factories 파일을 통해 자동 구성 클래스를 찾지만, Spring Boot 2.7 이후로는 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일도 함께 사용되기 시작했습니다.자세한 내용은 다음과 같습니다.1. AutoConfigurationImportSelector의 역..
2024.10.18 -
DeferredImportSelector
DeferredImportSelector는 Spring Framework에서 구성 클래스를 동적으로 로딩하는 인터페이스인 ImportSelector를 확장한 인터페이스로, 일반 ImportSelector보다 더 나중에 실행되어 구성 클래스를 로딩할 수 있습니다. DeferredImportSelector는 스프링 컨텍스트가 초기화되는 과정에서 다른 빈이나 구성이 먼저 처리된 후에 실행됩니다. 이 특성 때문에 주로 프레임워크 확장, 모듈화된 구성, 또는 복잡한 로딩 순서가 필요한 경우에 사용됩니다.주요 개념 및 사용 목적ImportSelector는 구성 클래스를 동적으로 로드하는 기능을 제공합니다.DeferredImportSelector는 '지연된(Deferred)' 방식으로 ImportSelector보다..
2024.10.17