스프링 Spring
1. Spring Framework vs Spring Boot vs STS 차이점
안녕하세요! 태마입니다.
Spring 기초 강좌입니다.
강좌의 경우
1. 주제 간단 정리
2. 상세 주제 정리
으로 이루어져 있습니다.
스프링 Spring
포스팅 시작하겠습니다 :)
1. 주제 간단 정리
1. Spring이란?
Spring은 자바(Java) 기반의 강력한 웹 애플리케이션 프레임워크입니다.
대규모 애플리케이션부터 마이크로서비스까지 폭넓게 사용되며, IoC(Inversion of Control), DI(Dependency Injection), AOP(Aspect-Oriented Programming) 등의 기능을 제공합니다.
하지만 Spring을 학습하다 보면 Spring Framework, Spring Boot, STS 같은 개념이 나와서 혼란스러울 수 있습니다.
📌 이번 글에서는 Spring을 개발할 때 꼭 알아야 하는 이 세 가지 개념을 비교함.
2. Spring Framework란?
Spring Framework는 자바 기반 애플리케이션을 개발하기 위한 핵심 프레임워크입니다.
기존에는 Java EE(Java Enterprise Edition) 기반의 개발이 복잡했기 때문에,
Spring Framework를 통해 설정을 단순화하고 유연성을 높인 것입니다.
📌 Spring Framework의 특징
✔ 유연한 구조 → 웹 애플리케이션, 데스크톱 앱, 마이크로서비스 등 다양한 환경에서 사용 가능
✔ 강력한 확장성 → Spring MVC, Spring Security, Spring Data 등 다양한 모듈 제공
✔ 설정이 복잡함 → XML, Java Config, 애너테이션 설정이 많아 초보자에게 어려울 수 있음
✔ WAS(Web Application Server) 필요 → 톰캣(Tomcat), 제티(Jetty) 같은 별도의 WAS에서 실행해야 함
📌 Spring Framework는 "Spring의 기본 구조"로, 개발자가 직접 많은 설정을 해야 함.
3. Spring Boot란?
Spring Boot는 Spring Framework를 더 쉽고 빠르게 사용할 수 있도록 만든 프레임워크입니다.
기본적으로 자동 설정(Auto Configuration), 내장 웹 서버(Embedded Web Server), 스타터(Starter) 패키지를 제공하여,
개발자가 설정할 부분을 줄이고 실행 속도를 높입니다.
📌 Spring Boot의 특징
✔ 설정이 간단함 → XML 없이 @SpringBootApplication 하나만 추가하면 됨
✔ 내장 웹 서버 제공 → 톰캣(Tomcat), 제티(Jetty), 언더토우(Undertow) 내장
✔ 의존성 관리가 편리함 → spring-boot-starter-* 를 활용해 필요한 라이브러리 자동 설정
✔ 마이크로서비스에 최적화 → REST API 개발과 클라우드 네이티브 환경에 적합
📌 Spring Boot는 "Spring을 쉽게 사용하기 위한 도구"로, 설정을 최소화하여 빠르게 실행 가능함.
4. STS(Spring Tool Suite)란?
STS(Spring Tool Suite)는 **Spring 개발을 위한 전용 IDE(통합 개발 환경)**입니다.
쉽게 말해, Spring 개발을 편리하게 하기 위한 Eclipse 기반의 개발 도구라고 볼 수 있습니다.
📌 STS의 특징
✔ Spring Boot 프로젝트 생성 지원 → 마법사(Wizard) 기능으로 쉽게 프로젝트 설정 가능
✔ Spring 개발에 최적화된 플러그인 제공
✔ Eclipse 기반 → Eclipse 플러그인과 연동 가능
✔ 다만, 무거운 단점이 있음 → IntelliJ IDEA, VS Code가 요즘 더 많이 사용됨
📌 STS는 "Spring 개발을 돕는 개발 환경(IDE)"일 뿐, Spring 자체는 아님.
✅ 여기까지 Spring에서 Spring Framework, Spring Boot, STS의 차이점을 배웠습니다!
👉 "그렇다면, 실무에서는 이들의 차이를 어떻게 활용할까요?"
✅ 2부에서 Spring Boot와 Spring Framework의 실무 적용법과 선택 기준을 배워봅시다!
2. 상세 주제 정리
1. Spring Framework vs Spring Boot vs STS – 실무 비교
비교 항목Spring FrameworkSpring BootSTS (Spring Tool Suite)
정의 | Java 기반 웹 프레임워크 | Spring 설정 자동화 및 내장 웹 서버 제공 | Spring 개발을 위한 전용 IDE |
설정 방식 | 복잡한 XML/Java 설정 필요 | @SpringBootApplication 하나로 간단 | IDE에서 자동 설정 지원 |
내장 웹 서버 | 없음 (톰캣, 제티 직접 설정 필요) | 톰캣(Tomcat), 제티(Jetty) 내장 | 개발 환경(IDE) 자체로 웹 서버 실행 가능 |
초기 설정 | 의존성 수동 설정 필요 | spring-boot-starter-* 자동 설정 | Spring Boot 프로젝트 생성을 쉽게 지원 |
실행 속도 | 설정이 많아 상대적으로 느림 | 간단한 실행 가능 (즉시 실행 가능) | IDE 성능에 따라 다름 (Eclipse 기반) |
사용 용도 | 대규모 프로젝트, 복잡한 시스템 | 마이크로서비스, REST API, 빠른 개발 | Spring Boot 개발 지원 도구 |
📌 Spring Boot는 "Spring을 쉽게 사용하기 위한 도구", STS는 "Spring 개발을 돕는 개발 환경"임.
2. 언제 어떤 것을 사용해야 할까?
사용 목적추천 도구
전통적인 엔터프라이즈 애플리케이션 개발 | Spring Framework |
빠른 개발 & 마이크로서비스 구축 | Spring Boot |
Spring 개발을 편하게 하고 싶음 | STS 또는 IntelliJ IDEA |
📌 실무에서는 대부분 "Spring Boot + IntelliJ" 조합을 많이 사용함.
✅ 여기까지 Spring에서 Spring Boot와 Spring Framework의 실무 활용법을 배웠습니다!
👉 "그렇다면, Spring Boot 3.x와 Spring 6에서는 무엇이 바뀌었을까요?"
✅ 다음 회차에서 Spring Boot 3.x와 Spring 6의 주요 변경 사항을 배워봅시다!