백엔드 개발을 공부하다 보면 가장 많이 듣게 되는 단어 중 하나가 바로 Spring Boot다.
그렇다면 Spring Boot는 정확히 무엇이고, 왜 이렇게 많이 사용될까?
이번 글에서는 Spring Boot의 개념, 등장 배경, 특징, 그리고 왜 사용하는지를 정리해본다.
👉 Spring Framework를 더 쉽고 빠르게 사용하기 위해 만들어진 프레임워크이다.
기존 Spring은 강력하지만,
설정 파일이 많고
초기 환경 설정이 복잡하며
서버 설정까지 직접 해야 하는 경우가 많았다
이런 불편함을 해결하기 위해 등장한 것이 Spring Boot다.
기존 Spring Framework의 문제점은 다음과 같았다.
XML 설정 파일이 너무 많음
프로젝트 시작 전에 해야 할 설정이 많음
톰캣 같은 WAS를 따로 설치해야 함
작은 기능 하나 만드는데도 준비 과정이 김
👉 Spring Boot는 이 모든 과정을 자동화했다.
1️⃣ 자동 설정 (Auto Configuration)
Spring Boot는
의존성만 추가하면 필요한 설정을 자동으로 처리해준다.
spring-boot-starter-web 추가
→ Tomcat 자동 설정
→ DispatcherServlet 자동 등록
→ MVC 설정 자동 완료
✔️ 개발자는 설정이 아니라 비즈니스 로직에만 집중하면 된다.
2️⃣ 내장 서버 (Embedded Server)
Spring Boot는 내장 Tomcat을 포함하고 있다.
java -jar app.jar
이 명령어 하나로 서버 실행 가능 ❗
✔️ 별도의 WAS 설치 불필요
✔️ 배포가 매우 간단
3️⃣ Starter Dependency
Spring Boot는 자주 쓰는 라이브러리를 묶어서 제공한다.
| Starter | 설명 |
|---|---|
| spring-boot-starter-web | 웹 개발 (MVC, Tomcat 포함) |
| spring-boot-starter-data-jpa | JPA + Hibernate |
| spring-boot-starter-security | Spring Security |
| spring-boot-starter-test | 테스트 관련 라이브러리 |
✔️ 의존성 충돌 걱정 ↓
✔️ 설정 시간 ↓
4️⃣ 설정의 단순화 (application.yml / properties)
과거 XML 설정 대신
application.yml 또는 application.properties 파일 하나로 설정 관리
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
✔️ 가독성 좋음
✔️ 환경별 설정 분리 가능 (dev, prod)
| 구분 | Spring | Spring Boot |
|---|---|---|
| 설정 | 수동 설정 많음 | 자동 설정 |
| 서버 | 외부 WAS 필요 | 내장 서버 |
| 시작 난이도 | 높음 | 낮음 |
| 생산성 | 보통 | 매우 높음 |
👉 요즘 Spring 개발 = 거의 Spring Boot
REST API 서버
React / Vue와 연동되는 백엔드
사내 시스템 (인트라넷)
스타트업 MVP 개발
마이크로서비스 아키텍처
✔️ 실무 백엔드 개발의 표준이라고 봐도 무방하다.
요청
↓
Controller
↓
Service
↓
Repository
↓
Database
Spring Boot는 이 구조를 가장 빠르게 만들 수 있도록 도와주는 도구다.
Spring Boot는
Spring의 장점은 그대로 유지하면서
복잡한 설정을 제거하고
빠른 개발과 쉬운 배포를 가능하게 만든 프레임워크다.
👉 백엔드 개발을 시작한다면, Spring Boot는 거의 필수 선택지라고 할 수 있다.