ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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/115237

    Spring 프로젝트의 복잡한 세팅 절차를 설명해놓은 글이다

    2) SpringBoot의 등장
    - 위와 같은 문제 해결을 위해 Springboot 서브 프로젝트가 진행됨
    - 경쟁관계에 있는 다른 프레임워크처럼 커맨드 도구를 제공
    - tomcat이나 jetty 같은 내장 서버로 복잡한 설정과 실행 간소화

    *(참고) 스프링 부트 프로젝트 생성 툴 https://start.spring.io/

    spring initializr로 간단히 스프링부트 프로젝트를 생성할 수도 있다

     

    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 파일들을 확인할 수 있다.

    댓글

Designed by black7375.