Spring은 자바 기반의 엔터프라이즈 애플리케이션 개발을 위한 오픈 소스 프레임워크입니다.
주요 목표는 복잡한 자바 개발을 간소화하고, 객체 지향 프로그래밍을 효율적으로 활용할 수 있도록 지원하는 것입니다.
IoC (Inversion of Control)
DI (Dependency Injection)
AOP (Aspect-Oriented Programming)
풍부한 모듈 지원
Spring Boot는 Spring Framework를 기반으로 한 프로젝트 초기화와 설정 자동화 도구입니다.
Spring의 복잡한 설정을 간소화하고, 빠르게 애플리케이션을 개발 및 배포할 수 있도록 지원합니다.
자동 설정
내장 웹 서버
의존성 관리
Spring Boot Starter를 사용하여 필요한 라이브러리들을 쉽게 추가 가능 독립 실행 가능
간단한 프로덕션 준비
| 특성 | Spring | Spring Boot |
|---|---|---|
| 설정 | 복잡한 XML 또는 Java Config 필요 | 자동 설정 제공 |
| 서버 설정 | 별도 서버 설치 필요 | 내장 서버 제공 |
| 초기 설정 시간 | 오래 걸림 | 빠름 |
| 애플리케이션 실행 | 외부 서버에서 실행 | 독립적으로 실행 가능 |
| 학습 곡선 | 상대적으로 높음 | 상대적으로 낮음 |
빠른 프로젝트 생성
간단한 의존성 관리
내장 Tomcat 사용
프로덕션 준비 도구
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}