설정하기 매우 복잡한 기존의 스프링의 단점을 보완하고자 출시한 자바 웹프레임워크이다.
빠르게 스프링 프로젝트를 설정할 수 있고 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리할 수 있다.
즉, 스프링 부트는 개발자가 좀 더 비즈니스 로직 개발에만 집중할 수 있는 환경을 제공해준다.
스프링 부트의 주요 특징
- 톰캣, 제티, 언더토우 같은 웹 애플리케이션 서버 (web application server, WAS)가 내장되어 있어서 따로 설치를 하지 않아도 독립적으로 실행할 수 있다.
- 빌드 구성을 단순화하는 스프링 부트 스타터를 제공한다.
- XML 설정을 하지 않고 자바 코드로 모두 작성할 수 있다.
- JAR를 이용해서 자바 옵션만으로도 배포가 가능하다.
- 애플리케이션의 모니터링 및 관리 도구인 스프링 액츄에이터(spring actuator)를 제공한다.
구성의 차이
스프링과 달리 스프링부트는 개발에 필요한 환경을 수동으로 설정할 필요없이 스프링 코어와 스프링 MVC의 모든 기능을 자동으로 로드하여 자동으로 설정해준다.
Spring Core
: Spring 프레임 워크의 핵심 기능을 제공하는 컨테이너이다. DI, IoC 컨테이너, Application Context의 핵심 기능을 제공한다.
Spring MVC
: Spring 프레임워크의 모듈 중 하나로, 서블릿 API를 기반으로 클라이언트의 요청을 처리해주는 모듈.
내장 WAS의 유무
스프링 애플리케이션은 일반적으로 톰캣과 같은 WAS에서 배포된다.
WAS (Web Application Server)
: DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server. HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다.
하지만 스프링 부트는 WAS를 자체적으로 가지고 있기 떄문에 jar 파일만 만들면 별도의 WAS 설정을 하지 않아도 애플리케이션을 실행할 수 있다.
추가로 내장 WAS에는 톰캣, 제티, 언더토우가 있어서 상황에 따라 필요한 WAS를 선택할 수 있다.