스터디/Spring

Spring Framework와 Spring Boot의 차이

Big Sun 2022. 5. 14. 00:13
728x90

 

Spring Boot는 기존 Spring Framework를 조금 더 편하게 사용하고자 하는 바람에서 만들어졌습니다.

그렇다면, 어떤 점이 편해졌을까요??

 

이번 포스팅에서는 이에 대해서 정리해보고자 합니다.

Spring Boot의 장점은 무엇일까?

 

Spring Boot의 장점은 아래와 같습니다.

  • AutoConfiguration : 자동으로 설정을 해줘 간편합니다.
  • Easy Dependency Management : 쉽게 의존성 관리를 할 수 있습니다.
  • Embedded Tomcat : 내장 톰캣을 사용해서 쉽게 배포를 할 수 있습니다.

먼저, AutoConfiguration부터 살펴보겠습니다.

 

Auto Configuration

 

Spring Boot는 Auto Configuration 기능을 제공하여 개발자가 명시적으로 설정하지 않아도 자동으로 설정을 적용해줍니다. 

 

@SpringBootApplication이 @EnableAutoConfiguration이 활성화시켜 spring-boot-autoconfigure 모듈안에 있는 AutoConfiguration.imports 파일을 읽어 관련 설정들을 적용해줍니다.

 

즉 매우 편리합니다.

 

Easy Dependency Management

Spring Framework의 경우에는 웹 애플리케이션을 만들기 위해 최소한 아래와 같은 설정을 해줘야합니다.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.5</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.5</version>
</dependency>

 

그러나, Spring Boot에서는 간단하게 아래의 코드만 추가해주면 됩니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.4.4</version>
</dependency>

 

 

이처럼 Spring Boot의 경우에는 하나의 의존성만 추가하면 연관된 다른 의존성을 가져옵니다.

또한, Spring Boot의 아래처럼 spring.dependency-management를 사용하면, 자동으로 dependency의 version을 관리해줍니다.

 

plugins {
	id 'java'
	id 'org.springframework.boot' version "${springBootVersion}"
	id 'io.spring.dependency-management' version "${springDependencyManagementVersion}"
}

 

 

Embedded Tomcat

 

Spring Framework로 개발할 경우 WAR 파일을 패키징하여 배포합니다. 그리고, WAR 파일을 실행하려면 Tomcat과 같은 WAS가 필요합니다. 즉, WAS에 WAR 파일을 배포하고, WAS가 실행되면서 Spring Application도 함께 실행되는 것입니다.

그러나, Spring Boot의 경우에는 Tomcat이나 Jetty와 같은 내장 WAS를 가지고 있어서 독립적으로 실행할 수 있는 JAR 파일만으로 간편하게 배포할 수 있습니다.

 

지금까지 Spring Boot가 왜 Spring Framework보다 편리한지 알아보았습니다.

728x90