Spring과 Spring Boot의 차이를 말해주세요
Spring은 Spring Container, DI, AOP, MVC 같은 핵심 기능을 제공하는 프레임워크입니다. Spring Boot는 이런 Spring 애플리케이션을 더 빠르게 만들고 실행할 수 있도록 자동 설정과 실행 환경을 제공하는 도구입니다.
Spring
- 엔터프라이즈 애플리케이션 개발을 위한 핵심 프레임워크입니다.
- Bean 등록, 의존성 설정, 데이터베이스 연결, 트랜잭션 관리 등을 개발자가 직접 구성하는 경우가 많습니다.
- 웹 애플리케이션을 배포하려면 별도의 WAS를 설치하고 WAR로 배포하는 방식이 자주 사용되었습니다.
Spring Boot
- Spring의 복잡한 초기 설정을 줄여주는 프레임워크입니다.
- AutoConfiguration을 통해 클래스패스와 설정 조건에 맞는 Bean을 자동 등록합니다.
- starter 의존성을 제공해 필요한 라이브러리 묶음을 쉽게 추가할 수 있습니다.
- Tomcat 같은 내장 서버를 제공하므로 독립 실행 가능한 JAR로 배포할 수 있습니다.
핵심 차이
| 항목 | Spring | Spring Boot |
|---|---|---|
| 성격 | 핵심 프레임워크 | Spring 기반 애플리케이션 개발 도구 |
| 설정 | 직접 설정 중심 | 자동 설정 중심 |
| 의존성 | 필요한 라이브러리 직접 조합 | starter 의존성 제공 |
| 서버 | 외부 WAS 배포가 일반적 | 내장 서버 제공 |
| 목표 | 애플리케이션 구조와 핵심 기능 제공 | 빠른 개발과 실행 환경 간소화 |
정리
Spring Boot는 Spring을 대체하는 것이 아니라 Spring을 더 쉽게 쓰기 위한 확장입니다. Spring이 핵심 기능을 제공하고, Spring Boot는 그 기능을 빠르게 조립하고 실행할 수 있게 도와줍니다.