<목차>
1. SpringBoot
2. Spring Boot 특징
3. Spring Framework 와 SpringBoot
What is Spring Boot ?
스프링 공식 문서에서는 다음과 같이 설명하고 있다.
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.
Spring Boot는 독립적으로 실행할 수 있는, 프로덕션 등급의 Spring 기반 애플리케이션을 손쉽게 만들 수 있게 해줍니다.
"JUST RUN" 할 수 있는 애플리케이션을 만들 수 있습니다.
Spring Boot는 Spring 플랫폼과 서드 파티 라이브러리에 대해 의견이 반영된 접근 방식을 취하여, 최소한의 번거로움으로 시작할 수 있게 해줍니다. 대부분의 Spring Boot 애플리케이션은 최소한의 Spring 설정만 필요합니다.
Spring Boot
spring.io
[Spring Boot 의 특징]
공식 문서 기준으로 특징에 대해 살펴보자.
- Create stand-alone Spring applications
- 스프링 부트는 애플리케이션을 독립적으로 실행할 수 있게 해준다.
즉, 외부 서버에 배포할 필요 없이, 내장 서버를 통해 바로 실행할 수 있으며, 이를 통해 개발 및 배포 과정이 단순해진다.
- 스프링 부트는 애플리케이션을 독립적으로 실행할 수 있게 해준다.
- Embed Tomcat, Jetty or Undertow directly
- 위 내용에 이어지는 내용이다.
- 스프링 부트는 Tomcat, Jetty, Undertow 와 같은 서버를 애플리케이션 내부에 직접 포함하고 있으며, 이를 통해 별도의 War 파일을 생성하고 외부 서버에 배포할 필요가 없으며, Jar 파일로 패키징하여 배포할 수 있다.
- 그렇다고 War 파일로 배포할 수 없는 것은 아니다.
- Provide opinionated 'starter' dependencies to simplify your build configuration
- 스프링 부트의 매우 중요한 특징이다.
- 스프링 부트는, 특정 기능을 쉽게 추가할 수 있도록 미리 정의된 의존성 모음 "starter" 를 제공한다.
Spring Framework 를 사용하며 가질 수 있는 큰 불편함 중 하나로, 의존성 관리가 있다.
JDK버전, Spring 버전, WAS 버전 등에 따라 사용하려는 라이브러리의 버전 또한 다른 경우가 있다.
Spring Boot 에서는, 이를 "starter" 가 관리함으로써, 개발자는 빌드 구성이 단순해지고 개발 속도를 올릴 수 있다.
- Automatically configure Spring and 3rd party libraries whenever possible
- 스프링 부트는 애플리케이션의 다양한 설정을 자동으로 구성해준다.
예를 들어, DB연결, Web서버 설정 등을 자동으로 구성하여, 개발자가 따로 설정하지 않고 비즈니스 로직에 집중할 수 있다.
- 스프링 부트는 애플리케이션의 다양한 설정을 자동으로 구성해준다.
- Provice production-ready fetures such as metrics, helath checks, and externalized configuration
- 스프링 부트는 프로덕션 환경에서 사용할 수 있는 다양한 기능을 제공한다.
- metrics : 애플리케이션의 성능 및 상태를 모니터링
- health checks : 애플리케이션의 상태를 확인
- externalized configuration : 환경별 설정을 쉽게 관리
- Absolutely no code generation and no requirement for XML configuration
- 스프링 부트는 XML 설정 파일을 생성하지 않는다.
- 대신, Java 설정 및 어노테이션 기반 구성을 사용하여, 개발자가 보다 직관적이고 간결하게 설정을 관리할 수 있다.
이처럼, Spring Boot 는 Spring Framework 의 복잡성을 줄이고, 개발자들이 보다 빠르고 쉽게 애플리케이션을 개발할 수 있도록 하는 프로젝트이다. Spring의 유연성과 확장성은 유지하되, 시작하는데 필요한 시간을 확실하게 줄여줄 수 있다.
[Spring Boot vs Spring]
- 의존성 관리
- Spring Framework 에서는 필요한 각 모듈의 의존성을 직접 설정해야 하며, 호환되는 버전을 명시해야 정상 동작하기에, 애플리케이션에서 사용하는 스프링 프레임워크나, 라이브러리의 버전을 상향해야 하는 상황에서는 연관된 다른 라이브러리의 버전 까지도 고려해야 한다.
- 하지만, Spring Boot 에서는 spring-boot-starter 라는 의존성을 제공하여 이를 해결할 수 있다.
각 라이브러리의 기능과 관련해 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공하고 있다. - spring-boot-starter 는 아래와 같은 의존성을 제공한다.
- spring-boot-starter-web
스프링 MVC를 사용하는 RESTful 애플리케이션을 만들기 위한 의존성 - spring-boot-starter-test
JUnit Jupiter, Mockito 등의 테스트용 라이브러리 - spring-boot-starter-jdbc
HikariCP 커넥션 풀을 활용한 JDBC 기능 제공 - spring-boot-starter-security
스프링 시큐리티(인증,인가 등) 기능을 제공 - spring-boot-starter-data-jpa
하이버네이트를 활용한 JPA 기능 제공 - spring-boot-starter-cache
스프링 프레임워크의 캐시 기능 제공
- spring-boot-starter-web
- 자동 설정 (Auto Configuration)
- Spring Boot는 스프링 프레임워크의 기능을 사용하기 위한 자동 설정을 지원한다.
애플리케이션에 추가된 라이브러리를 실행하는데 필요한 환경 설정을 찾아주며, 프레임워크가 자동으로 관리한다.
- Spring Boot는 스프링 프레임워크의 기능을 사용하기 위한 자동 설정을 지원한다.
- 내장 WAS
- 스프링 부트의 각 웹 애플리케이션에는 WAS가 있다.
- 웹 애플리케이션을 개발할 때, 가장 기본이 되는 spring-boot-starter-web 내에 내장되어 있다.
'Spring & Spring boot' 카테고리의 다른 글
[Spring Boot] Rest Controller - 4. PUT (0) | 2024.07.24 |
---|---|
[Spring Boot] Rest Controller - 3. POST (2) | 2024.07.24 |
[Spring Boot] Rest Controller - 2. Get (0) | 2024.07.24 |
[Spring Boot] Rest Controller - 1. REST (1) | 2024.07.23 |
[Spring] 스프링 프레임워크란? (0) | 2024.07.15 |