Spring vs Spring Boot
프로젝트를 하다보면 Spring 으로 구축된 프로젝트가 있고 Spring Boot 로 구축된 프로젝트가 있는데 무슨 차이일까요?

Spring (젠이츠)
젠이츠는 ‘1형’만 쓸 수 있지만 그 하나를 극한으로 단련해 무시무시한 공격을 날리죠.
Spring도 마찬가지. 기본기를 탄탄히 쌓을 수 있지만, 배우는 데 시간은 좀 듭니다.
- 웹에 필요한 기능을 총집합한 프레임워크
- 단, 집합인 만큼 설정도 복잡하고 프레임워크가 상당히 무거움
- xml , config 파일 등을 통해 설정함
- 로컬서버도 따로 설정해줘야함
- 설정하는데 시간이 많이 걸림
- 직접 컨트롤
Spring Boot (카이카쿠)
- Spring 에서 진행하는 설정을 간소화
- 자동으로 설정 , 스타터를 써도 됨
- 로컬서버(톰캣) , 의존성 , @(어노테이션)을 통한 설정 등등 개발할 때 편함
@SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } } - 메인만 있어도 서버가 돌아감
요약
| 설정 방식 | 수동 설정 (XML, Config) | 자동 설정 (Annotation) |
| 서버 구동 | 외부 서버 필요 | 내장 톰캣 포함 |
| 학습 곡선 | 비교적 가파름 | 상대적으로 쉬움 |
| 프로젝트 구조 | 복잡하고 자유도 높음 | 표준화된 구조 제공 |
| 사용성 | 세세하게 제어 가능 | 빠르게 개발 가능 |
어떨때 사용 ?
사실 요즘 프로젝트는 대부분 spring boot 긴 하지만 ..
- 기존 시스템이 Spring 기반이거나, 세밀한 설정을 직접 제어하고 싶다면 → Spring
- 빠르게 MVP를 만들거나, 초기 프로젝트를 빠르게 띄워야 한다면 → Spring Boot
이론적으로는 이렇다 ...
사실 공부할 땐 기본기를 탄탄하게 가져간다는 마음으로 spring 을 쓰는게 좋지만
실전에선 spring boot 를 쓴다 생각하는게 좋습니다.