Spring Boot 이전의 Spring 애플리케이션 개발을 위한 설정은 굉장히 복잡하였음. 그러나 Spring Boot로 인해 개발자는 Spring의 복잡한 설정에 대한 어려움으로부터 벗어날 수 있게 되었음.
Spring Boot 이전에는 애플리케이션에서 필요한 라이브러리를 사용하기 위해서는 필요한 라이브러리의 이름과 버전을 일일이 추가해주어야했음. 이로 인해 라이브러리 간의 버전 불일치로 인한 빌드 및 실행 오류 역시 빈번하게 발생하였음. 그러나 Srping Boot의 starter 모듈 구성 기능을 통해 의존 라이브러리를 수동으로 설정해야 하는 불편함이 사라짐.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'com.h2database:h2'
}
위의 코드는 Spring Boot에서 웹 애플리케이션을 개발하기 위한 기본적인 의존 라이브러리 설정의 예. 코드에서 보다시피 단 네 줄의 설정만으로 데이터베이스와의 연동은 물론 애플리케이션에 대한 모든 테스트까지 진행할 수 있음.
Spring Boot는 스타터 모듈을 통해 설치되는 의존 라이브러리를 기반으로 애플리케이션의 설정을 자동으로 구성함.
implementation 'org.springframework.boot:spring-boot-starter-web'
"와 같은 스타터가 존재한다면 애플리케이션이 웹 애플리케이션이라고 추측한 뒤 웹 애플리케이션을 띄울 서블릿 컨테이너(디폴트: Tomcat) 설정을 자동으로 구성함implementation 'org.srpingframework.boot:spring-boot-starter-jdbc'
"와 같은 스타터가 존재한다면 애플리케이션에 데이터베이스 연결이 필요하다고 추측한 뒤, JDBC 설정을 자동으로 구성함.@SpringBootApplication // (1)
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
(1)과 같이 @SpringBootApplication
애너테이션을 Spring 애플리케이션 코드에 추가해주면 Spring Boot에서 자동 구성 설정을 활성화해줌.
Spring Boot을 사용하면 개발한 애플리케이션 구현 코드를 손쉽게 구현하여 직접 빌드 결과물을 War 파일 형태로 WAS(Web Application Server)에 올릴 필요가 없음.
WAS(Web Application Server)란, 구현된 코드를 빌드해서 나온 결과물을 실제 웹 애플리케이션으로 실행되게 해주는 서버
Spring Boot는 Apache Tomcat이라는 WAS를 내장하고 있기때문에 별도의 WAS를 구축할 필요가 없으며 Spring Boot을 통해 빌드된 jar 파일을 이용해서 명령어 한 줄(java -ar <jar 파일명>.jar
)만 입력해주면 서비스 가능한 웹 애플리케이션을 실행할 수 있음.