스프링 부트(Spring boot)가 가진 특징

Minseok Ku·2022년 12월 25일
0

Spring

목록 보기
3/5

스프링 부트(Spring boot)가 가진 특징

1. 의존성 관리

스프링 프레임워크에서는 개발에 필요한 각 모듈의 의존성을 직접 설정해야 했습니다. 또 호환되는 버전을 직접 명시해야 정상적으로 동작합니다. 애플리케잇녀에서 사용하는 스프링 프레임워크나, 라이브러리의 버전을 올리는 상황에서는 연관된 다른 라이브러리의 버전까지도 고려해야 합니다.

하지만 스프링 부트에서는 이와 같은 불편함을 해소하기 위해 'spring-boot-starter' 라는 의존성을 제공합니다.
'spring-boot-starter'의 의존성을 여러 종류가 있고, 각 라이브러리의 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공합니다. 이를 통해 개발자는 라이브러리의 호환 문제를 해결 할 수 있습니다.

위 사진은 'spring-boot-starter' 가 제공하는 의존성 호환 조합의 일부입니다.

2. 자동 설정

스프링 부트는 스프링 프레임워크의 기능을 사용하기 위한 자동 설정을 지원합니다. 자동 설정은 어플리케이션에 추가된 라이브러리를 실행하는 데 필요한 환경 설정을 알아서 찾아 줍니다.

즉, 애플리케이션을 개발하는 데 필요한 의존성을 추가하면 프레임워크가 이를 자동으로 관리해 줍니다.

스프링 부트 프로젝트를 처음 생성하면, 다음과 같은 코드를 볼 수 있습니다.

@SpringBootApplication

public class HelloApplication {

	public static void main(String[] args) {
		SpringApplication.run(HelloApplication.class, args);
	}

}

여기 있는 @SpringBootApplication 어노테이션은 수많은 어노테이션들을 합쳐놓은 구성으로, 다양한 자동 설정이 일부 조건을 거쳐 적용됩니다.

작동 원리는 다음과 같습니다

스프링 부트 실행 > @ComponentScan 어노테이션이 @Component 시리즈 어노테이션이 붙은 클래스를 발견해 빈(Bean) 등록 > @EnableAutoConfiguration 어노테이션을 통해 'spring-boot-autoconfigure' 패키지 안에 파일을 추가해 다양한 자동 설정이 일부 조건을 거쳐 적용됩니다.

3. 내장 WAS

스프링 부트의 각 애플리케이션에는 내장 WAS가 존재합니다. 특별한 설정 없이도 톰캣을 실행할 수 있습니다.

필요에 따라서는 톰캣이 아닌 다른 웹 서버(Jetty, Undertow 등)로 대체할 수도 있습니다

4. 모니터링

개발이 끝나고 서비르를 운영할 시기에는 해당 시스템이 사용하는 스레드, 메모리, 세션 등의 주요 요소들을 모니터링 해야 합니다. 스프링 부트에는 스프링 부트 액추에이터 라는 자체 모니터링 도구가 있습니다.

0개의 댓글