# 목적
❓ Spring Boot 란?
- Spring 프로젝트를 기반으로 하는 파생 프로젝트
- Spring을 기반으로 하는 애플리케이션을 보다 쉽게 개발할 수 있도록 지원하는 프로젝트
- 개발자가 프로젝트와 관련된 설정을 일일이 하지 않고도 제품 수준의 스프링 기반 애플리케이션을 빠르게 개발할 수 있다.
Spring Boot의 주요 특징
- 자동 구성
- 개발자가 수동으로 설정하지 않아도 사전 종속성(의존성) 항목으로 애플리케이션이 초기화된다.
- 독립형 애플리케이션
- Spring Boot로 웹 애플리케이션 프로젝트를 생성하면 Tomcat과 같은 웹 서버를 내장하고 있다.
- 웹 서버를 내장하고 있기 때문에 외부 웹 서버에 의존하지 않고, 자체적으로 실행되는 독립형 웹 애플리케이션을 만들 수 있다.
> 플랫폼에 상관없이 애플리케이션을 실행하기만 하면 즉시 사용할 수 있다.
- 쉬운 의존성 관리
- 미리 정의된 spring-boot-starter 의존성을 제공한다.
- MVC 패턴의 웹 애플리케이션을 개발하는 경우 Spring Boot는 spring-boot-start-web 의존성을 추가하기만 하면 된다.
- spring-boot-starter 의존성 관리를 사용하면 애플리케이션에서 필요한 의존성을 빠르게 추가시킬 수 있다.
- 독선적 접근 방식
- Spring Boot는 프로젝트의 요구사항에 따라 종속성(의존성) 항목을 추가 및 구성할 때 독선적 접근 방식을 따른다.
- Spring Boot는 개발자에게 모든 결정을 맡기고 모든 것을 수정으로 설정하도록 하는 대신, 자체적 판단에 따라 설치할 패키지와 사용할 기본값을 독단적으로 선택한다.
- 사용자의 실수로 기인하는 오류 방지가 가능하다.
Spring Boot의 목적
빠르게 프로젝트 개발 단계에 진입할 수 있도록 초기 구성에 시간낭비 하지 않게 하는 것
Spring Boot를 이용해서 개발을 하는 게 아니라 빠르게 구성해주는 것
Spring Boot를 이용해서 Spring 프로젝트를 빠르게 구성하고, 개발을 Spring을 이용해서 하는 것!
참고)
Spring 2버전과 3버전의 차이는 매우 클 뿐더러 호환도 되지 않음.
Spring Boot 2.7은 자바 8 이상
Spring Boot 3.0은 자바 17 이상이어야 함 * 아직 도입되지 않은 곳이 대부분