-
[Spring] SpringBoot의 등장배경 및 장점Programming/Spring 2021. 11. 23. 17:02
1. SpringBoot 등장배경
1) Spring framework의 문제
- Spring framework는 다양한 프레임워크와 기술을 지원함과 동시에 개발자가 처리해야 하는 설정도 많아지고 복잡해짐
- Spring을 처음 접하는 개발자 입장에서는 이러한 복잡한 설정에 부담을 느낄 수 밖에 없었음
*(참고) 스프링MVC 하루만에 배우기 / Spring 프로젝트 세팅-1,2,3 https://wikidocs.net/1152372) SpringBoot의 등장
- 위와 같은 문제 해결을 위해 Springboot 서브 프로젝트가 진행됨
- 경쟁관계에 있는 다른 프레임워크처럼 커맨드 도구를 제공
- tomcat이나 jetty 같은 내장 서버로 복잡한 설정과 실행 간소화
*(참고) 스프링 부트 프로젝트 생성 툴 https://start.spring.io/2. SpringBoot 장점
1) 라이브러리 관리 자동화
- Maven의 기능과 ‘starter’ 컴포넌트들을 이용해 라이브러리 의존성을 간단히 처리
2) 설정 자동화
- 프로젝트에 추가된 라이브러리를 기반으로, 실행에 필요한 환경을 자동 설정
3) 라이브러리 버전 자동 관리
- Spring 라이브러리 뿐만 아니라 Third-party 라이브러리까지 호환되는 버전으로 자동 다운로드
4) 테스트 환경
- JUnit을 비롯한 테스트 라이브러리가 내장되어 있음
5) 서버 내장
- 내장형 Tomcat, Jetty 또는 Undertow 를 지원 (war 배포시 불필요)
- 내장형 서버를 기반으로 main 메서드를 실행하는 방식으로 서버를 구동할 수 있어, 보다 빠르게 실행 결과 확인 가능
5) 독립적으로 실행 가능한 JAR
- 단독 실행이 가능한 스프링 어플리케이션을 생성
- War가 아닌 Jar파일로 패키징하여 배포 및 실행 가능
6) 설정을 위한 XML 코드 대신에 properties 및 yaml 파일 사용
7) 상용화 수준의 통계 (metrics), 상태 점검 (health check) 및 외부 설정 제공3. SpringBoot Starters
- 스타터(Starter) 컴포넌트는 응용 프로그램에 포함할 수 있는 편리한 종속성 관리의 집합이다.
- 샘플코드와 복사/붙여넣기의 의존성 관리를 거치지 않고도 필요한 모든 Spring 관련 기술을 한번에 관리할 수 있다.
- 스타터(Starter)에는 프로젝트를 신속하게 시작하고 실행하는데 필요한 많은 종속성이 포함되어 있으며 일관되게 지원 관리되는 종속성 세트를 제공한다.
> starter 컴포넌트 목록
https://docs.spring.io/spring-boot/docs/2.5.0/reference/htmlsingle/#using.build-systems.starters
> 가장 대표적인 예로 spring-boot-starter-web을 살펴보자.
Dependency Hierarchy를 통해 해당 starter 컴포넌트가 포함하는 수많은 jar 파일들을 확인할 수 있다.'Programming > Spring' 카테고리의 다른 글
[Spring] Rest API 서버 만들기 - 빈등록 (0) 2021.11.16 [Spring] *.properties 파일 한글(UTF-8) 인코딩 (0) 2021.11.16 [Spring] Eclipse에 스프링 프로젝트 불러오기 (0) 2021.11.16 [Spring] 스프링부트 프로젝트 생성 (0) 2021.11.16 [Spring] Eclipse 한글(UTF-8) 인코딩 설정 (0) 2021.11.16 댓글