Spring Boot는 Spring Framework의 편리함에도 불구하고 Spring 설정의 복잡함으로 인해 Spring 기반 애플리케이션 개발을 시작하기도 전에 어려움을 겪는 문제점을 해결하기 위해 생겨난 Spring Project 중 하나다.
Spring Boot 이전의 Spring 애플리케이션 개발을 위한 설정은 굉장히 복잡했다.
하지만 Spring Boot로 인해 개발자는 Spring의 복잡한 설정에 대한 어려움으로부터 벗어날 수 있게 되었다.
Spring Boot 이전에는 애플리케이션에서 필요한 라이브러리를 사용하기 위해서는 필요한 라이브러리의 이름과 버전을 일일이 추가해 주어야 했다. 이로 인해 라이브러리 간의 버전 불일치로 인한 빌드 및 실행 오류 역시 빈번하게 발생했다.
하지만 Spring 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은 스타터(Starter) 모듈을 통해 설치되는 의존 라이브러리를 기반으로 애플리케이션의 설정을 자동으로 구성한다.
implementation 'org.springframework.boot:spring-boot-starter-web
와 같은 starter가 존재한다면 애플리케이션이 웹 애플리케이션이라고 추측한 뒤, 웹 애플리케이션을 띄울 서블릿 컨테이너(디폴트: Tomcat) 설정을 자동으로 구성한다.
implementation 'org.springframework.boot:spring-boot-starter-jdbc’
와 같은 starter가 존재한다면 애플리케이션에 데이터베이스 연결이 필요하다고 추측한 뒤, JDBC 설정을 자동으로 구성합니다.
이러한 자동 구성을 활성화 하기 위해서 여러분들이 해야할 일은 아래와 같은 애너테이션을 코드에 추가해주는 것 뿐입니다.
@SpringBootApplication // (1)
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
@SpringBootApplication
애너테이션을 Spring 애플리케이션 코드에 추가해주면 Spring Boot에서 자동 구성 설정을 활성화 해준다.
Spring Boot을 사용하면 개발한 애플리케이션 구현 코드를 손쉽게 빌드하여 직접 빌드 결과물을 War 파일 형태로 WAS(Web Application Server)에 올릴 필요가 없다.
[bootJar] 명령을 더블 클릭 하게되면 빌드 결과물이 생성된다.
[bootJar] 명령을 실행해서 생성된 jar 파일은 즉시 시작 가능한 애플리케이션 실행 파일로 사용된다.
WAS(Web Application Server)란?
Java 기반의 웹 애플리케이션을 배포하는 일반적인 방식은 개발자가 구현한 애플리케이션 코드를 WAR(Web application ARchive) 파일 형태로 빌드한 후에 WAS(Java에서는 서블릿 컨테이너라고도 부른다)라는 서버에 배포해서 해당 애플리케이션을 실행하는 것이다. (Java 진영에서 사용되는 대표적인 WAS에는 Tomcat이 있다)
즉, WAS는 구현된 코드를 빌드해서 나온 결과물을 실제 웹 애플리케이션으로 실행되게 해주는 서버다.
Spring Boot은 Apache Tomcat이라는 WAS를 내장하고 있기때문에 별도의 WAS를 구축할 필요가 없으며, Spring Boot을 통해 빌드된 jar 파일을 이용해서 아래와 같은 명령어 한 줄만 입력 해주면 서비스 가능한 웹 애플리케이션을 실행 할 수 있다.
이처럼 Spring Boot을 사용하면 java -jar <jar 파일명>.jar
명령어를 통해 만든 애플리케이션을 손쉽게 실행할 수 있다.