1. 빠른 시동
- 스프링 부트의 주요 목표 중 하나는 스프링 애플리케이션 개발을 빨리 시작할 수 있게 만드는 것.
전통적인 스프링만으로 웹 애플리케이션을 개발한다면 아래와 같은 과정을 먼저 수행해야 함.
a. 스프링 MVC 의존 관계를 추가하고 메이븐이나 그레이들 프로젝트를 설정
b. 스프링 MVC DispatcherServlet 설정
c. 애플리케이션 컴포넌트를 WAR 파일로 패키징
d. WAR 파일을 Apache Tomcat 같은 서블릿 컨테이너에 배포
- 스프링 부트를 사용하면 개발자는 애플리케이션에 필요한 의존 관계를 명시하기만 하면 되고, 나머지는 스프링 부트가 알아서 해준다
2. 자동 구성
- 스프링 부트는 클래스패스에 있는 JAR 파일이나 여러 가지 설정 파일에 지정된 프로퍼티 정보를 바탕으로 스프링 애플리케이션에 필요한 최소한의 컴포넌트를 알아서 자동으로 구성해준다.
예를 들어 클래스패스에 H2 인메모리 데이터베이스 드라이버 JAR 파일이 있으면 스프링 부트는 H2 데이터베이스 연결에 필요한 데이터 소스를 자동으로 구성해준다.
3. 미리 정의된 방식
- 스프링 부트는 미리 정의된 방식을 따른다. 그래서 스프링 애플리케이션을 실행할 때 필요한 몇 가지 컴포넌트를 스타터 의존 관계를 기준으로 자동으로 구성한다.
스타터 의존 관계는 애플리케이션 개발의 특정 영역을 대상으로 관련된 의존 관계를 포함하고 있다.
4. 독립 실행형
- 스프링 부트 애플리케이션은 웹 서버를 내장하고 있어서 외부 웹 서버나 애플리케이션 서버 없이도 독립적으로 설치되어 실행할 수 있다.
스프링 부트 애플리케이션은 실행 가능한 JAR 파일로 패키징 되어 java -jar 명령으로 간단하게 실행할 수 있다.
덕분에 스프링 부트 애플리케이션은 쉽게 컨테이너화 될 수 있고 클라우드 네이티브 애플리케이션 개발에도 적합하다.
5. 실제 서비스 환경에 사용 가능
- 스프링 부트에는 헬스체크, 스레드 덤프를 수행하고 기타 유용한 측정지표를 보여주는 기능이 포함돼 있어서, 실제 서비스 환경에 배포된 애플리케이션 모니터링이나 유지 관리를 손쉽게 수행할 수 있다.