스프링 대 스프링 부트: 스프링과 스프링 부트의 차이점

게시 됨: 2021-01-13

Spring Framework의 확장으로 Spring Boot는 Spring에서 더 빠르고 효율적이며 편리하게 개발할 수 있도록 널리 사용됩니다. 이 기사에서는 Spring Boot를 사용하여 애플리케이션 개발에 필요한 시간과 노력을 크게 줄일 수 있는 일부 매개변수를 살펴보겠습니다.

목차

봄이란 무엇입니까?

간단히 설명하면 Spring은 Java 기반 애플리케이션을 개발하기 위해 포괄적인 인프라 지원을 제공하는 인기 있는 통합 프레임워크입니다. 오픈 소스 플랫폼은 가볍고 느슨하게 결합되어 있으며 종속성 주입 및 측면 지향 프로그래밍을 비롯한 몇 가지 중요한 기능이 함께 제공됩니다.

의존성 주입은 느슨한 결합을 이끌어내는 역할을 하는 반면 측면 지향 프로그래밍은 중요한 교차 작업의 구현을 돕습니다.

또한 다양한 작업을 수행하기 위한 다양한 모듈과 함께 제공됩니다. 이들 중 일부는 Spring Test, Spring Security, Spring Web, Spring JDBC, Spring AOP, Spring MVC 및 Spring ORM입니다.

이러한 각 모듈은 애플리케이션 개발에 소요되는 시간을 크게 줄이는 데 도움이 됩니다. 예를 들어, 상용구 코드 – 이전의 Java 기반 개발에서는 데이터 소스에 특정 레코드를 삽입하는 간단한 작업을 위해 수많은 상용구 코드가 필요했습니다. 그러나 이제 JDBCTemplate을 사용할 때 몇 줄의 코드와 몇 가지 사소한 구성만으로 동일한 작업을 수행할 수 있습니다.

스프링 부트

Spring 위에 구축된 Spring Boot는 애플리케이션 설정에서 중요했던 긴 상용구 구성을 제거할 수 있는 모듈입니다.

Spring Boot는 더 빠르고 효율적인 애플리케이션 개발을 위한 방법을 만들기 위해 Spring 프레임워크에 대한 의견이 있는 관점을 고려하여 작동합니다. 자동 구성은 가장 유용한 기능입니다.

엄격한 메트릭 및 상태 확인을 수행하고 외부화된 구성을 처리합니다. Spring의 원활한 기능을 위해 활성화된 자동 구성이 있습니다. 또한 응용 프로그램 배포의 복잡성을 줄이기 위해 서버가 내장되어 있습니다.

또한 읽기: 초보자를 위한 상위 7개의 흥미로운 스프링 부트 프로젝트 및 주제

스프링과 스프링 부트의 차이점

이 섹션에서는 Spring 프레임워크와 Spring Boot의 주요 차이점을 자세히 살펴보겠습니다.

1. 프레임워크

Spring은 엔터프라이즈 애플리케이션을 구축하는 데 적합한 경량의 오픈 소스입니다. 반면에 Spring Boot는 REST API 개발에 적합한 Spring 프레임워크의 확장입니다. Spring의 애플리케이션은 느슨하게 결합된 반면 Spring Boot'는 독립 실행형입니다.

2. HTTP 기본 인증

Spring과 Spring Boot가 어떻게 그들의 보안 설정, 즉 기본 HTTP 기본 인증을 활성화하는지 알아봅시다. 이는 보안을 활성화하기 위해 여러 종속성 및 구성을 활성화해야 함을 나타냅니다.

Spring의 경우 애플리케이션에서 기본 HTTP 기본 인증을 활성화하려면 표준 spring-security-web 및 spring-security-config 종속성이 모두 필요합니다.

다음 단계는 WebSecurityConfigurerAdapter가 있는 클래스를 추가하여 @EnableWebSecurity 주석을 활성화하는 것입니다.

보안을 활성화하려면 메모리 내 인증을 사용해야 합니다.

Spring과 마찬가지로 이러한 종속성은 Spring Boot의 경우에도 포함되어야 합니다. 그러나 이는 나머지를 자동으로 처리하는 spring-boot-starter-security 종속성만 정의하여 수행할 수 있습니다.

3. 최소 종속성

Spring은 웹 앱을 생성할 때 정해진 수의 의존성을 필요로 합니다. 이것들 다음과 같습니다:

<의존성>

<groupId>org.springframework</groupId>

<artifactId>스프링 웹</artifactId>

<버전>5.2.9.RELEASE</버전>

</종속성>

<의존성>

<groupId>org.springframework</groupId>

<artifactId>스프링-webmvc</artifactId>

<버전>5.2.9.RELEASE</버전>

</종속성>

반면에 Spring Boot는 애플리케이션이 단 하나의 종속성으로 작동하도록 할 수 있습니다.

<의존성>

<groupId>org.springframework.boot</groupId>

<artifactId>스프링 부트 스타터 웹</artifactId>

<버전>2.3.4.RELEASE</버전>

</종속성>

기본적으로 최종 아카이브에 추가되는 몇 가지 추가 종속성이 빌드 시간 동안 필요합니다. 라이브러리를 테스트하는 동안에도 Spring은 다음 라이브러리를 추가합니다.

  • 모키토
  • 스프링 테스트
  • 햄크레스트와
  • JUnit

Spring Boot에는 다양한 Spring 모듈 전용 스타터 프로젝트가 많이 있습니다. 각 모듈에 필요한 필수 라이브러리를 갖추고 있습니다.

따라서 Spring과 달리 Spring 부트는 테스트 라이브러리에서 하나의 스타터 종속성만 필요로 합니다.

4. 스프링 구성

이 섹션에서는 Spring과 Spring Boot 모두 웹 애플리케이션(JSP)을 빌드하는 데 필요한 구성을 강조 표시합니다.

Spring의 경우 web.xml 파일이나 Initializer 클래스를 사용하여 디스패처 서블릿 및 기타 중요한 구성을 정의합니다.

Spring은 또한 @EnableWebMvc 어노테이션이 @Configuration 클래스에 접근 가능하도록 하고 컨트롤러가 반환할 뷰를 해결하기 위한 뷰 리졸버를 선언할 것을 요구합니다.

Spring Boot의 경우 Web Starter를 추가한 후 전체 코드를 몇 가지 속성으로 대체할 수 있습니다. Boot web starter가 포함되면 필수 구성이 자동으로 추가됩니다. 이 프로세스를 자동 구성이라고 합니다.

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

간단히 말해서 Spring Boot는 관련된 종속성, 구성 및 빈에 대한 견해를 갖고 이러한 모든 것을 자동으로 활성화하는 속성을 추가합니다.

그러나 사용자 정의 구성을 계속 진행하려는 경우 방해하지 않도록 Spring Boot를 재정의할 수 있습니다.

5. 부트스트래핑

서블릿은 Spring과 Spring Boot에서 애플리케이션 부트스트래핑을 구별하는 것입니다.

web.xml 또는 SpringServletContainerInitializer는 Spring의 경우 부트스트랩 진입점으로 사용됩니다. 반면, Spring Boot는 Servlet 3만으로 애플리케이션을 부트스트랩할 수 있습니다.

6. 배포

Spring과 Spring Boot는 패키징에서 가장 일반적으로 사용되는 Maven 및 Gradle 지원과 같은 기술을 지원한다는 점에서 유사합니다. 그러나 배포 프로세스는 두 프레임워크에서 다릅니다.

예를 들어 Spring Boot Maven 플러그인은 Maven에서 Spring Boot 지원을 제공합니다. 또한 실행 가능한 jar 또는 war 아카이브를 패키징하고 "현장에서" 애플리케이션을 실행할 수 있습니다.

배포와 관련하여 Spring Boot는 Spring에 비해 몇 가지 장점이 있습니다.

  • 포함된 컨테이너에 대한 지원이 있습니다.
  • java -jar 명령을 사용하여 jar를 독립적으로 실행할 수 있습니다.
  • jar의 충돌을 일으키는 종속성을 제거하여 충돌을 피할 수 있습니다.
  • 활성 프로필을 정의할 수 있습니다.
  • Spring Boot Maven 플러그인은 실행 가능한 jar 또는 war 아카이브를 지원하고 애플리케이션을 "인플레이스(in-place)"에서 실행할 수 있습니다.
  • 랜덤 포트 생성을 통한 간소화된 통합 테스트

Spring보다 Spring Boot의 장점

  1. 더 빠른 애플리케이션 부트스트랩에 기여하는 기본 구성이 있습니다.
  2. Spring Boot는 더 간단하고 효율적인 빌드 및 앱 구성을 위해 Spring의 '스타터' 종속성에 대한 견해를 취합니다.
  3. 쉬운 통합을 허용하는 많은 스타터 프로젝트가 있기 때문에 일치하지 않는 버전에 관해서는 문제가 없습니다. 이들 중 일부는 spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-test, spring-boot-starter-security, spring-boot-starter-thymeleaf를 포함합니다.
  4. 애플리케이션을 실행하기 위해 명시적 서버가 필요한 Spring에 비해 tomcat 또는 jetty와 같은 임베디드 서버는 실행을 더 쉽게 만듭니다.
  5. 시간을 줄이고 생산성을 높이는 상용구 코드를 피할 수 있습니다. Spring 애플리케이션에는 너무 많은 코드 라인이 필요합니다.
  6. Spring Boot에는 Spring과 같은 배포 설명자가 필요하지 않습니다.

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

Spring Boot는 기존 Spring의 모든 기능을 포함하면서도 애플리케이션 개발을 훨씬 쉽게 만듭니다. 모든 Spring Boot 속성은 자동 구성되므로 Spring에 비해 훨씬 더 짧은 시간에 애플리케이션을 시작하고 실행할 수 있습니다.

전체 스택 소프트웨어 개발인 Spring Boot에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. + 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

자바에서 스프링 부트란?

Spring Boot는 Spring MVC와 유사한 웹 애플리케이션 프레임워크로 웹 애플리케이션을 더 쉽게 만들 수 있습니다. Java 8과 같은 Java 플랫폼의 새로운 기능을 사용하도록 설계되었습니다. Spring Boot는 매우 독단적입니다. 즉, 개발자는 작업을 완료하기 위해 일반적인 코드에 대해 생각하는 데 시간을 할애할 필요가 없습니다. Spring Boot는 Spring MVC 및 Spring Data를 기반으로 구축되지만, 이들과 달리 XML 구성 파일이 필요하지 않으며, 강력한 유형이 지정되고 클래스 경로에 있는 내용을 기반으로 자체적으로 자동 구성됩니다. 개발자는 @SpringBootComponent 어노테이션이 있는 클래스를 작성하기만 하면 Spring Boot가 이를 컴포넌트로 등록하고 Spring 컨텍스트를 생성하고 스스로 구성합니다. 이것은 시작하고 실행 가능한 샘플 애플리케이션을 만드는 데 필요한 시간을 줄이기 때문에 Spring Boot를 사용하는 주요 이점입니다.

Spring에서 의존성 주입이란?

스프링과 스프링 부트의 차이점은 무엇입니까?

Spring은 Java 애플리케이션 프레임워크입니다. Spring Boot는 Spring의 경량 버전입니다. 즉, Spring Boot는 Spring 기반 마이크로 서비스를 보다 편리하게 생성할 수 있도록 생성된 Spring의 하위 집합입니다. Spring Boot는 마이크로서비스를 생성하기 위한 무료 오픈 소스 초고속 프레임워크입니다. 동일한 Spring 프로그래밍 모델을 사용하지만 더 적은 종속성으로 더 빠르게 시작할 수 있습니다. Spring Boot는 독립형(Spring Boot Starter) 마이크로서비스를 생성하는 데 필요한 모든 지원을 제공하며 서버 측 Java 웹 앱을 위한 훌륭한 기반이기도 합니다.