1. 스프링 부트는 무엇일까?
자바 개발자라면 스프링 프레임워크에 대해서 한번은 들어봤거나 현재도 사용하고 있을 것이다.
스프링은 경량, 안정성 그리고 DI, AOP 많은 장점을 바탕으로 국내 표준으로 통하는 프레임워크이다.
이러한 장점이 있는 반면 환경 설정을 위한 많은 시간이 소비되는 단점이 존재했다.
당장 프로젝트에 필요한 Dependency와 MVC 구조, 애플리케이션 배포를 위한 서버(웹서버 + WAS) 등등
이러한 단점을 보완해줄 수 있는 것이 바로 스프링 부트이다.
스프링 부트 프로젝트 홈페이지에선 스프링 부트에 대해 이렇게 설명하고 있다.
스프링 부트는 단독으로 실행이 가능하며 상용 수준의 스프링 기반 어플리케이션을 간단히 만들 수 있다.
아주 적은 설정을 통해 스프링 플랫폼과 서드파티 라이브러리를 사용할 수 있게 만들어 준다.
특징
- 단독 실행 가능한 스프링 어플리케이션을 만든다.
- 임베디드 톰캣, 제티 혹은 언더토우를 내장하고 있다.(WAR 파일을 배포할 필요 없다)
- 기본 제공 되는 ‘스타터’ 의존성을 통해 빌드를 간단히 설정할 수 있다.
- 자동화 된 스프링 설정과 서드 파티 라이브러리를 사용할 수 있다.
- 상용화에 필요한 통계 및 상태 점검 그리고 외부 설정을 제공한다.
- 설정을 위한 XML과 코드를 작성할 필요가 없다.
스프링은 이와 같이 스프링이라는 프레임워크의 설정 및 사용법을 간소화 한 툴이다.
개발자에게 있어 비즈니스 로직 구현에 집중할 수 있는 환경을 만들어 주는 것이다.
참고로 궁금한 점이 있다면 stackoverflow를 모니터링 하고 있으니 spring-boot 태그를 남겨달란다.
2. 스프링 부트의 시작단계
Spring Boot Reference Guide를 참고하여 스프링 부트 튜토리얼을 시작해보고자 한다.
해당 포스트 작성 당시 최신 버전은 Spring Boot 2.1.3.RELEASE 이다.
시스템 요구환경
- JAVA
JAVA 8 이상(JAVA 11 포함)
- Spring
Spring Framework 5.1.5.RELEASE 이상
- Build Tool
Maven 3.3 + Gradle 4.4 +
- Servlet Containers
Tomcat 9.0 Jetty 9.4 Undertow 2.0
스프링 부트를 위한 시스템 요구환경을 맞춘 후 STS(Spring Tool Suite) 혹은 이클립스 + 스프링 플러그인을 설치한다.
New > Spring Starter Project를 클릭하여 프로젝트를 생성한다.
Spring Starter Project의 Dependencies를 추가해준다.
Dependencies를 추가할 경우 아래와 같이 build.gradle 파일에 추가된다.
아래와 같이 프로젝트에 Dependencies가 추가된 것을 확인할 수 있다.
3. 스프링 부트 스타터
이와 같이 스프링 부트는 개발자가 일일이 의존 관계 및 라이브러리를 추가하는 번거러움을 줄이기 위해 스프링 부트 스타터를 제공한다. 프로젝트에 필요한 스프링 부트 스타터를 추가만 해주면 일일이 어떤 라이브러리가 필요한지 찾아볼 필요가 없어진다.
스프링 부트 스타터 선언 방법은 다음과 같다.
- ‘org.springframework.boot:spring-boot-starter-[스타터명]‘
스타터의 종류나 스타터 내 의존 관계를 Spring Boot Reference Guide - Starters에서 할 수 있다.