Spring 7

[스프링부트] 외부 설정을 이용한 자동 구성

외부 설정을 이용한 자동 구성외부 설정을 이용한 자동 구성Environment 인터페이스는 애플리케이션이 실행되는 환경과 관련된 프로퍼티와 프로파일을 다루기 위해 제공되는 주요 인터페이스이다. Environment는 Spring의 핵심 컴포넌트 중 하나로, 애플리케이션이 실행될 때 다양한 소스에서 설정된 프로퍼티를 쉽게 접근하고 사용할 수 있도록 한다. Spring Boot에서 프로퍼티를 어떻게 구성하는지 설명하도록 하겠다. Environment Abstraction - Properties스프링 Environment 추상화는 애플리케이션 두 가지 환경 정보 모델인 profile과 properties를 제공한다. 앞에서 알아보았던 자동 구성 정보 내용을 변경하거나 설정할 때 Environment를 통해 프..

Spring 2024.08.05

[스프링부트] 조건부 자동 구성

조건부 자동 구성스프링 부트에서 조건에 따라 클래스를 빈 컨테이너에 등록할지 말지 선택할 수 있다. Jetty 서버를 구성에 추가한 후 조건에 따라 Jetty 서버가 실행될지, Tomcat 서버가 실행될지 스프링 부트가 선택하는 예제를 구현해 보며 조건부 자동 구성을 알아보겠다. Jetty 서버와 Tomcat 서버 설정dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test'}처음 Spring initializer에서 web 모듈 선택 후 build.gradle을 살펴보면 위와 같이 의존 관계가..

Spring 2024.04.19

[스프링부트] 자동 구성 기반 애플리케이션

자동 구성 빈 등록 자동 구성 기반 애플리케이션 설정스프링부트의 자동구성은 애플리케이션의 환경 및 클래스패스에서 사용 가능한 라이브러리를 감지하고, 이에 따라 적절한 빈(Bean)을 자동으로 등록하여 애플리케이션이 정상적으로 작동하도록 하는 기능이다. 예를 들어, 데이터베이스 관련 라이브러리가 클래스패스에 존재하면, 데이터베이스 연결을 위한 빈을 자동으로 구성한다. 자동 구성 빈 등록이 어떻게 되는지 알아보도록 하겠다. 빈 오브젝트 역할빈 오브젝트는 크게 3가지로 구분할 수 있다.1. 애플리케이션 로직 빈애플리케이션 비즈니스 로직을 담고 있는 클래스로 만들어지는 빈이다. 빈은 주로 @Service, @Component, @Repository 등의 애노테이션으로 표시되며, Spring의 IoC(Invers..

Spring 2024.04.17

[스프링부트] Bean Container와 Proxy

프록시 패턴 프록시 패턴이 어떻게 사용되는지 알아보겠다. 아래는 전체 테스트 코드이다. public class ConfigurationTest { @Test void configuration() { Common common = new Common(); Assertions.assertThat(common).isSameAs(common); AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(); ac.register(MyConfig.class); ac.refresh(); Bean1 bean1 = ac.getBean(Bean1.class); Bean2 bean2 = ac.getBean(Bean2.class); Assert..

Spring 2024.04.16

[스프링부트] 빈 컨테이너 생성

Bean Container 생성 후 Bean을 등록하는 과정에 대해서 알아보자. Bean Contianer 이전에는 서블릿 컨테이너를 생성하고 서블릿을 등록하는 것까지 배웠다. 또 다른 컨테이너인 빈 컨테이너를 생성하고 등록하는 과정에 대해서 알아보겠다. DI 실습을 하기 앞서 http 요청을 처리할 클래스를 2개 생성할 것이다. 첫 번째 클래스는 HelloController이다. "/hello" url의 요청을 처리할 클래스이다. 코드는 다음과 같이 작성한다. public class HelloController { private final HelloService helloService = new HelloService(); public String hello(String name) { return h..

Spring 2024.04.08

[스프링부트] 서블릿 컨테이너 만들기

서블릿 컨테이너를 직접 생성해 보자. 스프링 구조 스프링은 위의 그림처럼 서블릿 컨테이너와 Bean 컨테이너 2가지 구조로 이루어져 있다. 오늘 실행할 실습은 서블릿 컨테이너를 직접 생성하고 등록하는 예제를 진행할 것이다. 스프링 부트 초기 설정 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HellobootApplication { public static void main(String[] args) { SpringApplication.run(HellobootApplicati..

Spring 2024.04.05

[스프링부트] 스프링부트 살펴보기

Spring Boot란 스프링 부트(Spring Boot)는 자바 언어로 개발된 오픈 소스 프레임워크인 스프링(Spring)의 일종이다. 스프링 부트는 스프링 프레임워크의 기능을 보다 쉽게 사용할 수 있도록 도와주는 도구이며, 애플리케이션의 개발과 배포를 단순화하는 데 중점을 두고 있다. 강의에서 강조한 부분은 스프링과 스프링 부트가 다르다는 점이다. 스프링 부트는 스프링의 사용 방법을 제안하는 것이고, 스프링 부트를 잘 알게된다는 것은 스프링을 잘 활용한다는 뜻과 같다. Spring Boot의 핵심 목표 초기 설정의 간소화 : 스프링 부트는 초기 설정을 최소화하여 개발자가 더 빠르게 애플리케이션을 구축할 수 있도록 한다. 기본 설정은 내장된 서버와 자동 구성 기능을 포함하여 개발자가 별도의 설정 없이도..

Spring 2024.04.04