Spring Framework가 등장했음에도 환경설정이 복잡하고 시간이 오래걸려서 불편함을 느끼게 되었다.
SpringBoot는 Spring을 통해 웹 애플리케이션을 실행시키기 전까지의 많은 환경 설정을 자동화하여 개발자에게 편하게 Spring을 사용할 수 있도록 도와주기 위해 등장!
DispatcherServlet과 같은 설정을 어노테이션을 통해 대신할 수 있다 (@SpringBootApplication : @ComponentScan, @EnableAutoConfiguration)
여러 설정들을 자동으로 수행하게된다.
starter를 통해 Spring Boot는 dependency를 관리함으로써, 버전 종속성으로 인한 호환성을 고려하여 수동적으로 관리해야됬던 Spring의 문제를 해결함
통합 Starter를 제공하여 Maven/Gradle 구성을 간소화
maven pom.xml에서 의존 라이브러리의 버전을 일일이 지정하지 않아도 된다. 스프링 부트가 권장 버전을 관리한다.
내부에는 Tomcat과 같은 WAS를 내장함으로써 이전 Spring Framework에서 WAS를 설치하고 버전을 관리하는 문제를 해결
톰캣(Tomcat)이나 제티(Jetty)를 기본 내장할 수 있으며 웹 프로젝트 띄우는 시간이 독립적인 톰캣으로 띄우는 시간보다 반은 단축
서블릿 컨테이너가 내장될수 있으므로 JAR을 이용하여 자바 옵션만으로도 배포가능
스프링 Security , Data JPA 등의 다른 스프링 프레임워크 요소를 쉽게 사용가능하다. 이 과정에서 프로토타이핑이나 기능을 시험해보는 시간이 전보다 단축된다.