우봉수
2023. 7. 16. 16:34
2023. 7. 16. 16:34
소개
- Spring: 자바 플랫폼을 위한 오픈 소스 프레임워크로, 2003년에 Rod Johnson에 의해 처음 발표되었다.
- SpringBoot: Spring Framework 위에서 구축된 독립적인(stand-alone), 생산 수준의 Spring 기반 애플리케이션을 쉽게 만들 수 있도록 돕는 도구
공통점
- Java로 개발된 애플리케이션을 만들기 위한 프레임워크
라이브러리: 개발자가 코드의 흐름을 제어하며 필요한 시점에서 호출하여 사용한다.
프레임워크: 개발자가 아닌 프레임워크가 애플리케이션의 흐름을 제어하며, 애플리케이션의 전반적인 구조를 제공하며 개발자는 정해진 구조 위에서 기능을 추가하게 된다.
차이점
- 설정과 구성
- Spring Framework: Spring 애플리케이션을 설정하고 구성하는 데에 XML 기반 또는 주석 시반 설정으로 복잡한 부분이 있어 많은 시간이 소요된다.
- Spring Boot: opinionated defaults 기법을 통해 기본 설정을 제공받아 설정을 자동화하여 개발자가 별도의 설정을 하지 않아도 바로 애플리케이션을 실행할 수 있게 해준다. 상대적으로 적은 시간이 소요된다.
- 서버 설정
- Spring Framework: 별도의 내장 서버를 포함하지 않기 때문에 개발자가 별도로 웹 서버를 설치하고 구성해야 한다.
- Spring Boot: 내장 Tomcat, Jetty, Undertow 등의 서버를 제공하므로 웹 서버를 따로 설치하거나 구성할 필요가 없다.
- 의존성 관리
- Spring Framework: 개발자가 필요한 모든 라이브러리의 의존성을 수동으로 관리해야 한다.
- Spring Boot: 스타터(starter)종속성을 제공하여, 프레임워크 자체에서 관련된 의존성 그룹을 자동으로 가지고 와서 설치해준다.
- 프로젝트 배포
- Spring Framework: WAR 파일로 패키지화하여 별도의 서버에 배포하여야 한다.
- Spring Boot: JAR 파일로 패키지화하여 자체 내장 서버를 통해 쉽게 실행하고 배포할 수 있다.
- ( https://suhanlim.tistory.com/192 )배포 및 WAR, JAR 파일 설명 글
- 개발 및 시장 출시 시간
- Spring Framework: 설정, 의존성 관리 등으로 인해 개발 및 배포 시간이 상대적으로 길 수 있다.
- Spring Boot: 자동 설정, 내장 서버, 스타터 종속성 등으로 인해 빠르게 애플리케이션을 개발하고 배포 할 수 있다.
- SpringBoot에서 추가된 기능
- Actuator: Spring Boot Actuator는 애플리케이션의 상태를 모니터링하고 관리하는 기능을 제공한다. HTTP 엔드포인트나 JMX를 통해 애플리케이션의 다양한 정보(예: 메트릭, 헬스 체크, 환경 설정 등)를 확인할 수 있다.
- ( https://suhanlim.tistory.com/193 )사용 방법 정리 글
- YAML: YAML형식의 설정 파일을 지원한다.
언제 사용해야 하는가?
- Spring Framework: 복잡한 애플리케이션에 대해 더 많은 제어가 필요하거나 특정 설정을 최적화하려는 경우나, 학습 목적으로 Spring의 내부 동작을 더 잘 이해하려는 경우에 사용하는게 적합하다.
- Spring Boot: 빠른 프로토타이핑이나 마이크로서비스 아키텍처와 같이 빠른 개발과 배포가 중요한 상황에서 적합하다. 설정의 복잡성을 최소화하고 빠르게 실행 가능한 애플리케이션을 만들 때 사용하면 좋다.