[Java] Spring Boot란?

최승혁·2026년 1월 8일
post-thumbnail

Spring Boot란?

백엔드 개발을 공부하다 보면 가장 많이 듣게 되는 단어 중 하나가 바로 Spring Boot다.
그렇다면 Spring Boot는 정확히 무엇이고, 왜 이렇게 많이 사용될까?

이번 글에서는 Spring Boot의 개념, 등장 배경, 특징, 그리고 왜 사용하는지를 정리해본다.


Spring Boot란?

👉 Spring Framework를 더 쉽고 빠르게 사용하기 위해 만들어진 프레임워크이다.

기존 Spring은 강력하지만,

  • 설정 파일이 많고

  • 초기 환경 설정이 복잡하며

  • 서버 설정까지 직접 해야 하는 경우가 많았다

이런 불편함을 해결하기 위해 등장한 것이 Spring Boot다.


Spring Boot가 등장한 이유

기존 Spring Framework의 문제점은 다음과 같았다.

  • XML 설정 파일이 너무 많음

  • 프로젝트 시작 전에 해야 할 설정이 많음

  • 톰캣 같은 WAS를 따로 설치해야 함

  • 작은 기능 하나 만드는데도 준비 과정이 김

👉 Spring Boot는 이 모든 과정을 자동화했다.


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-jpaJPA + Hibernate
spring-boot-starter-securitySpring 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 vs Spring Boot 차이

구분SpringSpring Boot
설정수동 설정 많음자동 설정
서버외부 WAS 필요내장 서버
시작 난이도높음낮음
생산성보통매우 높음

👉 요즘 Spring 개발 = 거의 Spring Boot


Spring Boot는 언제 사용될까?

  • REST API 서버

  • React / Vue와 연동되는 백엔드

  • 사내 시스템 (인트라넷)

  • 스타트업 MVP 개발

  • 마이크로서비스 아키텍처

✔️ 실무 백엔드 개발의 표준이라고 봐도 무방하다.


간단한 Spring Boot 실행 구조

요청
 ↓
Controller
 ↓
Service
 ↓
Repository
 ↓
Database

Spring Boot는 이 구조를 가장 빠르게 만들 수 있도록 도와주는 도구다.


마무리

Spring Boot는

  • Spring의 장점은 그대로 유지하면서

  • 복잡한 설정을 제거하고

  • 빠른 개발과 쉬운 배포를 가능하게 만든 프레임워크다.

👉 백엔드 개발을 시작한다면, Spring Boot는 거의 필수 선택지라고 할 수 있다.

profile
Full-Stack Developer

0개의 댓글