Spring boot
1. Spring boot란?
Spring을 더 쉽게 이용하기 위한 도구입니다.
Spring은 다양한 기능을 제공하고 있지만, 그 기능을 사용하기 위한 설정에 많은 시간이 걸립니다.
ex) Transaction Manager, Hibernate Datasource, Entity Manager, Session Factory 등
→ Spring boot는 기존의 Spring의 오래 걸렸던 설정을 편리하게 도와주기 위해 나온 도구입니다.
2. Spring boot의 특징
- Spring Boot는 자동설정(AutoConfiguration)을 이용합니다.
- 어플리케이션 개발에 필요한 모든 Dependency를 Framework에서 관리
- jar 파일이 클래스 패스에 있는 경우 스프링 부트는 Dispatcher Servlet으로 자동 구성
- Spring boot는 미리 설정되어 있는 Starter 프로젝트를 제공
- xml 설정없이 자바 코드를 통해 설정
- 어플리케이션을 개발하면서 사용되는 Dependency들은 호환되는 버전으로 관리해줘야 합니다
- 이런 복잡도를 줄이기 위해 Spring boot는 SpringBoot-Starter를 제공하여 자동으로 호환되는 버전을 관리
- 모니터링 관리를 위한 Spring Actuator 제공
- 서비스가 정상적으로 동작하는지 상태 모니터링 기능 제공
- Spring Actuator는 Spring boot에서 제공하는 상태 정보를 보다 쉽게 모니터링 할 수 있게 기능을 제공
- Spring boot 프로젝트의 의존성 관리
- Spring voot starter dependency를 통해 다양한 패키지를 수용하고 있음 → Spring boot의 가장 큰 장점
- Spring boot 프로젝트의 starter dependency
- spring-boot-starter-web-service : SOAP 웹 서비스
- spring-boot-starter-web : RESTful 응용 프로그램
- spring-boot-starter-test : 단위테스트, 통합 테스트
- spring-boot-starter-jdbc : 기본적인 jdbc
- spring-boot-starter-security : 스프링 시큐리티(인증, 권한)
- spring-boot-starter-data-jpa : Spring Data JPA(Hibernate)
- spring-boot-starter-cache : 캐시
3. Spring boot와 Spring Legacy의 차이
Spring boot와 특징에 대해선 먼저 설명했으니 Spring Legacy에 대해서
살펴보고 Spring boot와 어떤 차이가 있는지 알아보겠습니다.
Spring Legacy는 일반적으로 Spring Framework를 지칭합니다.
우리가 흔히 Spring이라 부르는 스프링의 정확한 표현은 Spring Framework입니다.
Spring Framework는 자바에서 가장 많이 사용되는 Framework인 의존성 주입(DI, Dependency Injection)과 제어역전(IOC, Inversion of Control), 관점지향 프로그래밍(AOP)이 가장 중요한 요소입니다. 이 요소들은 하나의 공통된 목적을 가지고 있습니다.
바로 느슨한 결합(Loose)입니다.
이러한 느슨한 결합으로 개발한 어플리케이션은 단위 테스트를 수행하기 용이하다는 장점이 있습니다.
Spring Framework는 다양한 기능이 있는데 그 기능들은 약 20개의 모듈로 구성되어 있습니다.
대표적인 모듈 몇가지를 보면 Spring JDBC, Spring MVC, Spring AOP, Spring ORM, Spring Test, Spring Epression Language(SpEL) 등이 있습니다.
그럼 이제 Spring Framework가 이렇게 다양한 기능을 가지고 있는데
왜 Spring boot가 나오게 되었는지에 대해 살펴보겠습니다.
공식 사이트에 나와있는 글을 인용해 보면
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “Just run”.
Spring boot는 단지 실행만 하면 되는 Spring 기반의 어플리케이션을 쉽게 만들 수 있다.
위 글을 보면 Spring boot의 개념을 직접 관통하는 문장이라 볼 수 있습니다.
Spring boot는 Spring 기반이라는 것에는 차이가 없습니다.
'Programming > Java, Spring' 카테고리의 다른 글
[Spring] Lombok이란? / Lombok의 사용 이유 / Lombok의 단점 / Lombok 사용법 (0) | 2022.10.14 |
---|---|
[Spring] AOP란?? / AOP를 사용하는 이유 (0) | 2022.10.13 |
[Spring] DI / IOC란? / 의존성을 주입하는 방법 (0) | 2022.10.11 |
[Spring] POJO란? / POJO vs Java Beans (0) | 2022.10.10 |
[JAVA]람다식이란? / 람다식의 특징 / Lambda Expression (0) | 2022.09.25 |