Spring Boot는 Spring 기반 애플리케이션 개발을 간소화하기 위한 프로젝트입니다.
Spring Boot는 “큰 신경 쓰지 않고도 단순히 실행되는 Spring 기반 애플리케이션을 만들 수 있게 해주는 것”을 목표로 합니다.
주요 특징은 다음과 같습니다:
- 자동 구성(Auto-Configuration): Spring Boot는 클래스 경로에 존재하는 라이브러리와 설정을 자동으로 탐지하고, 일반적으로 필요한 구성을 자동으로 제공합니다. 이를 통해 개발자는 불필요한 설정 없이 애플리케이션을 빠르게 실행할 수 있습니다.
 - 내장 웹 서버: Spring Boot에는 Tomcat, Jetty, Undertow와 같은 내장 웹 서버가 포함되어 있어, 별도의 웹 서버 설치 없이 애플리케이션을 실행할 수 있습니다.
 - 의존성 관리: Spring Boot는 의존성 관리를 위한 스타터(starter) 의존성을 제공합니다. 개발자는 필요한 기능에 따라 적절한 스타터 의존성을 추가하기만 하면 됩니다.
 - 생산 준비 기능: Spring Boot는 메트릭, 상태 확인, 외부 구성 등의 기능을 내장하고 있어, 프로덕션 환경에 배포 가능한 실행 가능한 jar 또는 war를 생성할 수 있습니다.
 - 코드 제너레이션: Spring Boot는 애플리케이션을 빠르게 구축할 수 있도록 코드 생성 도구를 제공합니다. Spring Initializr와 같은 도구로 초기 프로젝트 구조를 생성할 수 있습니다.
 - 내장 통합 테스트: Spring Boot는 내장 통합 테스트 지원을 통해 애플리케이션을 완전히 시작하지 않고도 테스트할 수 있습니다.
 - 개발자 도구: Spring Boot는 개발 환경에서 실시간 코드 변경을 적용할 수 있는 개발자 도구를 제공합니다.
 
간단한 Spring Boot 애플리케이션 예시
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 | 
 import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RestController; 
@SpringBootApplication 
@RestController 
public class DemoApplication { 
    public static void main(String[] args) { 
        SpringApplication.run(DemoApplication.class, args); 
    } 
    @GetMapping(“/”) 
    public String hello() { 
        return “Hello, Spring Boot!”; 
    } 
} 
 | 
cs | 
이 예시에서는 @SpringBootApplication 어노테이션을 사용하여 Spring Boot 애플리케이션을 구성했습니다.
main 메서드에서 SpringApplication.run을 호출하면 내장 웹 서버가 시작되고, @RestController에 정의된 / 엔드포인트로 “Hello, Spring Boot!” 메시지를 반환합니다.
Spring Boot는 Spring 기반 애플리케이션 개발을 대폭 간소화하고 개발 생산성을 높였습니다.
자동 구성, 내장 웹 서버, 의존성 관리, 프로덕션 준비 기능 등을 제공하여 개발자가 비즈니스 로직에 집중할 수 있도록 합니다.
