Spring

[Spring Boot] Spring Boot란? Spring Boot의 특징과 장점

부제: Spring Boot를 선택한 이유

🍃 Just Run


스프링 부트 메인 페이지에 들어가면 보이는 첫 문장이다.

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

스프링 부트는 단독 실행이 가능한 상용화 수준의 스프링 기반의 애플리케이션을 쉽게 만들 수 있도록 합니다. 당신은 애플리케이션을 "just run" 하면 됩니다.

이 문장에서 보이는 스프링 부트의 핵심 장점은 두 가지다.

  • 단독 실행이 가능하다.
  • 만들기 쉽다.

이것이 어떻게 가능한지는 스프링 부트의 특징을 통해 알 수 있다.

🍃 Features

단독 실행과 쉬운 설정에 대한 특징

1. Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)

JAR와 WAR는 둘 다 JDK에 포함된 jar.exe라는 유틸리티를 이용하여 생성되는 자바 애플리케이션 압축 파일이다. 그 중 WAR 형식은 웹 애플리케이션 파일들을 패키징한다. JRE에서 실행되는 JAR와 달리, WAR 압축 파일을 실행하려면 Tomcat, WebLogic 등의 웹 서버 또는 웹 애플리케이션 서버를 설치해야 한다. Spring Boot 프로젝트는 내장된 Tomcat, Jetty 등을 사용하기 때문에 JAR 형식을 사용하여 배포할 수 있다. 그리고 배포된 단독 파일만으로 애플리케이션을 실행할 수 있다.(내장 서버를 사용하고 싶지 않다면 dependency 설정을 바꾸면 된다.)

2. Provide opinionated 'starter' dependencies to simplify your build configuration

Spring Boot는 'starter'를 제공한다. 스타터는 특정 목적을 위한 라이브러리 의존성 그룹이다. 개발자는 필요한 모든 라이브러리의 의존성을 일일이 찾아볼 필요가 없게 되고, 빌드(maven 또는 gradle) 구성 코드를 간소화할 수 있다.

3. Automatically configure Spring and 3rd party libraries whenever possible

또한 스타터 사용을 통해 라이브러리의 의존성 버전도 권장 버전으로 자동 설정된다. 따라서 개발자는 버전 충돌 문제를 피할 수 있고 의존성을 설정하기 훨씬 쉬워진다.

 

 

그 외의 특징

4. Provide production-ready features such as metrics, health checks, and externalized configuration

스프링 부트는 애플리케이션의 모니터링을 위한 통계, 상태 점검 기능(Spring Boot Actuator)을 제공한다.

5. Absolutely no code generation and no requirement for XML configuration

스프링 부트에서는 XML 설정 코드를 생성하거나 요구하지 않는다.

🍃 Outro

스프링 부트는 스프링 프레임워크의 장점을 그대로 보존하며 개발자가 비즈니스 로직에 집중하여 생산성을 높이게 해준다. 물론 설정을 커스터마이징할 경우에는 내부의 설정 코드를 확인해야 하는 불편함을 겪을 수도 있다. 그치만 일반적인 애플리케이션을 개발할 경우라면 스프링 부트를 통해 자바 프로그래밍을 더 쉽고, 빠르고 안전하게 할 수 있다.

 

 

[reference]

- Spring Boot Main Page

https://spring.io/projects/spring-boot

 

Spring Boot

Get support Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription. Learn more

spring.io

- 우아한 Tech - 닉의 Spring vs Spring Boot

[10분 테코톡] 🦊닉의 Spring vs Spring Boot

- 『처음 배우는 스프링 부트 2, 김영재 저. 』