정의
스프링부트(Spring Boot)는 자바 기반 애플리케이션을 보다 빠르고 간편하게 개발할 수 있도록 지원하는 오픈소스 프레임워크이다. 스프링 프레임워크 기반으로 설계되어 있으며, 설정의 자동화와 최소한의 구성으로 서버 애플리케이션을 신속하게 구동할 수 있는 특징을 가진다.
개요
스프링부트는 Pivotal 소프트웨어(현 VMware Tanzu)에서 주도하여 개발된 프로젝트로, 스프링 생태계의 복잡한 초기 설정 문제를 해결하기 위해 2014년에 처음 공개되었다. 전통적인 스프링 프레임워크 기반 개발에서는 XML 또는 자바 기반 설정 파일을 수동으로 작성하고, 의존성(Dependency) 관리 및 서버 구성 등에 많은 시간이 소요되었으나, 스프링부트는 이러한 과정을 극도로 간소화한다. 이를 통해 개발자는 비즈니스 로직에 집중할 수 있도록 돕는다.
스프링부트는 내장 웹 서버(Tomcat, Jetty, Undertow 등)를 포함하여 별도의 외부 애플리케이션 서버 없이도 애플리케이션을 실행할 수 있으며, 마이크로서비스 아키텍처를 구축하는 데 널리 사용된다. 또한 스타터(Starter) 의존성 덕분에 데이터베이스 연동, 보안, 캐싱, 메시징 등의 기능을 추가할 때 일일이 라이브러리를 선택하고 설정하는 수고를 줄일 수 있다.
어원/유래
"스프링(Spring)"은 프레임워크의 상위 계열인 스프링 프레임워크에서 유래하였으며, "부트(Boot)"는 "부팅(booting)" 즉, 신속한 시작과 초기화를 의미한다. 전체 이름은 애플리케이션이 "빠르게 부팅된다"는 특징을 강조하기 위해 명명된 것으로 추정된다. 정확한 명명 과정에 대한 공식 기록은 확인되지 않으나, 개발자 커뮤니티에서는 이러한 해석이 일반적으로 받아들여진다.
특징
- 자동 구성(Auto-configuration): 클래스패스에 포함된 라이브러리에 따라 적절한 설정을 자동으로 구성한다.
- 내장 서버: 외부 애플리케이션 서버 없이 애플리케이션을 실행할 수 있도록 내장 웹 서버를 제공한다.
- 스타터 의존성(Starter Dependencies): 일반적인 사용 사례에 맞는 사전 정의된 의존성 그룹을 제공하여 설정을 단순화한다.
- 독립 실행형 애플리케이션: JAR 파일로 패키징하여 명령줄에서 바로 실행 가능하다.
- 운영 편의성: 애플리케이션 상태 모니터링, 메트릭 수집, 외부 구성 관리 등을 위한 Actuator 기능을 제공한다.
- 마이크로서비스 친화적: 스프링 클라우드(Spring Cloud)와의 통합을 통해 분산 시스템 구조를 쉽게 구현할 수 있다.
관련 항목
- 스프링 프레임워크
- 자바(Java)
- 마이크로서비스
- Pivotal Software
- 스프링 클라우드
- 오픈소스 소프트웨어
- 내장 웹 서버
- Actuator (Spring Boot)