Spring
- 스프링은 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 엔터프라이즈 애플리케이션 개발을 위해 널리 사용됨.
특징
1. 경량 컨테이너
: 스프링은 경량 컨테이너로서, 애플리케이션 객체의 생성, 구성, 관리 담당
2. 의존성 주입
: 객체 간의 의존성을 외부에서 주입하는 방식을 통해 코드의 결합도를 낮추고 유지보수를 용이하게 함.
3. AOP
: 관점 지향 프로그래밍을 통해 횡단 관심사를 분리하여 애플리케이션의 모듈성을 증가.
4. 다양한 모듈 제공
: 트랜잭션 관리, ORM 통합, 웹 MVC 등 다양한 엔터프라이즈 수준의 기능 제공.
수동으로 많은 설정과 구성이 필요.
Spring Boot
- 스프링 부트는 스프링 기반 애플리케이션을 빠르고 쉽게 개발할 수 있도록 해주는 도구이다.
특징
1. 자동 구성
- 스프링 부트는 애플리케이션에 필요한 많은 설정을 자동으로 구성.
2. 독립 실행 가능
- 스프링 부트 애플리케이션은 내장 서버를 포함하여 독립적으로 실행.
3. 의견이 반영된 설정
- 스프링 부트는 "convention over configuration" 접근 방식을 채택해 기본값을 제공하므로, 개발자는 최소한의 설정으로 애플리케이션을 개발할 수 있음.
4. 간편한 의존성 관리
- 스프링 부트 스타터 의존성을 통해 프로젝트에 필요한 의존성을 쉽게 추가할 수 있음.
자동 구성과 쉬운 시작 제공
스프링 부트는 스프링 프레임워크 위에 구축된 도구로, 스프링의 강력한 기능을 쉽고 빠르게 사용할 수 있도록 도와준다. 스프링 부트는 개발자가 스프링의 기능을 보다 빠르고 효율적으로 활용할 수있도록 하는 반면, 스프링 프레임워크를 더 많은 제어와 유연성을 제공한다.