개발

[Spring] Spring vs Spring Boot

qwas15788hj 2025. 8. 24. 22:54

현업에서 “Spring이랑 Spring Boot가 뭐가 다른가요?”라는 질문을 자주 받는다. 팀 내에서도 신규 웹 서비스는 Spring Boot로 시작하지만, 유지보수 등 대부분 프로젝트는 레거시/특수 환경에서 순수 Spring Framework만 쓰는 경우도 많이 남아 있다. 이 글은 내가 실제로 구분·선택하는 기준을 정리한 것이다.

 

✅ 1. 한 줄 정의

  • Spring Framework: DI/AOP 등 핵심 인프라를 제공하는 애플리케이션 프레임워크(기반). 세밀 설정과 조립을 개발자가 주도.
  • Spring Boot: Spring을 빠르게 쓰도록 자동설정(Auto-configuration), 스타터(Starter), 내장 서버 등을 제공하는 실행 편의 프레임워크

 

✅ 2. 핵심 차이

구분 Spring Framework Spring Boot
설정 방식 XML/자바 설정을 수동 구성 자동설정 기본 + 필요한 것만 덧입힘
의존성 추가 라이브러리 개별 선택/버전 정합 직접 관리 Starter 의존성으로 기능 단위 일괄 추가(예: spring-boot-starter-web)
실행 방식 외부 WAS(Tomcat 등) 배포가 일반적 내장 서버(Tomcat/Jetty/Undertow)로 바로 실행 가능
설정 파일 전통적 XML/자바 설정 위주 application.properties
부트스트랩 개발자가 Main/WAR 구성, 컨텍스트 조립 @SpringBootApplication로 부팅 진입점 간단화

 

✅ 3. 언제 무엇을 쓸까

  • 새 웹 서비스/내부 API, 마이크로서비스 → Spring Boot 권장: 자동설정/Starter/내장 서버/운영 자동화(Actuator 등)로 개발·운영 속도가 빠르다.
  • 레거시 연동, WAS 정책이 엄격한 환경, 프레임워크 학습/연구용 → Spring: 세밀 제어가 필요하거나 플랫폼 제약이 강하면 유리.
Spring: MVC, Jackson, 서버 설정 등을 직접 엮음
Boot: spring-boot-starter-web 하나로 MVC+Jackson+내장Tomcat 바로 사용

 

✅ 4. 용어 및 개념 정리

  • Starter: 관련 라이브러리를 기능 묶음으로 제공하는 의존성(웹, JPA, 보안 등).
  • Auto-configuration: 스프링 컨텍스트를 합리적 기본값으로 자동 구성.
  • Actuator: 헬스체크·메트릭 등 운영 관측 기능 제공.
  • 내장 서버: 외부 WAS 없이 JAR로 바로 실행.