1. 스프링 부트 소개
1-1. 비교
- J2EE : 웹 개발시 톰캣, 제티, 언더토우 등 서블릿 컨테이너 설치 + 직접 환경 구성
- Spring : 안정성, 성능, DI 등 장점이 있지만 개발 환경 설정 복잡
- Spring Boot : Spring의 장점 + 필요한 환경 설정 최소화, 생산성 향상
1-2. 특징
스프링 부트는 간단한 설정만으로 빠르게 실행할 수 있다. "Just Run"
- 내장된 서블릿 컨테이너로 독립 실행이 가능한 스프링 어플리케이션 개발
- 통합 스타터를 제공하여 Maven/Gradle 구성 간소화
- 스타터를 통한 자동화된 스프링 설정 제공
- 번거로운 XML 설정 필요 없음
- JAR를 사용하여 자바 옵션만으로도 배포 가능
- 어플리케이션 모니터링을 위한 Spring Actuator 제공
1-3. 스프링 부트와 스프링
스프링 부트는 스프링 프레임워크라는 큰 틀에 속하는 도구일 뿐이다.
간소화된 설정에 스프링 프레임워크의 장점까지 더해 빠르게 서비스를 개발할 수 있다!
1-4. 스프링 부트 스타터
스프링에서는 의존 관계를 일일히 설정해야 하는 번거로움이 있지만, 스프링 부트에서는 스타터가 빌드에 필요한 의존성을 자동으로 관리해준다.
즉, 스프링 부트 스타터는 '특정 목적을 달성하기 위한 의존성 그룹' 이다.
명명 규칙
spring-boot-starter-*
: *에 사용하고자 하는 스타터명을 명시하면 된다.
1-5. 장단점
장점
- 각각의 의존성 버전을 올리는 것이 수월하다. 스프링 부트의 버전이 올라갈 때마다 각 버전 간의 호환성에 대한 충분한 테스트를 거쳤기 때문에 안정된 버전을 보장 받을 수 있다.
- 특정 라이브러리에 버그가 있을 경우 스프링팀에서 버그픽스한 버전을 받을 수 있다.
- 간단한 어노테이션 설정이나 프로퍼티 설정으로 세부적인 설정 없이 빠르게 원하는 기능을 개발할 수 있다.
- 별도의 외장 톰캣 설치가 필요 없다.
단점
- 설정을 개인화하면 버전을 올릴 때 불편하다.
- 특정 설정을 개인화하거나 설정 자체를 변경할 경우 내부의 설정 코드를 봐야 한다.
[참고]