-
스프링 프레임워크와 스프링 부트개발/Spring Boot 2023. 7. 15. 00:29
Spring Framework에 필요한 모듈들을 추가하다 보면 설정이 복잡해지는 문제를 해결하기 위해 Spring Boot가 등장했다.
Spring Boot는 별도의 복잡한 설정 없이, 사용할 수 있는 프레임워크이다.
의존성 관리
스프링 프레임워크에서는 개발에 필요한 각 모듈의 의존성을 직접 설정해야 했다.
프레임워크와 호환되는 버전을 명시해야하며 연관된 다른 라이브러리의 버전까지도 고려해야했다.
스프링 부트에서는 이런 불편함을 해소하기 위해 'spring-boot-starter'라는 의존성을 제공한다.
spring-boot-starter의 의존성은 여러 종류가 있고, 기능과 모듈의 호환성을 고려하여 최적의 조합을 제공한다.
아래는 많이 사용되는 spring-boot-starter 라이브러리이다.
spring-boot-starter-web: 스프링 MVC를 사용하는 RESTful 애플리케이션을 만들기 위한 의존성이다. 기본적으로 Tomcat를 포함하고 있어서 jar형태로 실행도 가능하다.
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: 스프링 프레임워크의 캐시 기능을 지원한다.
자동 설정
애플리케이션에 추가된 라이브러리를 실행하는 데 필요한 환경 설정을 알아서 찾아준다.
@SpringBootApplication 어노테이션이 그러한 역할을 한다.
@SpringBootApplication은 크게 세 개의 어노테이션을 합쳐놓은 구성이다.
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
스프링 부트 애플리케이션이 실행되면 @ComponentScan 어노테이션이 @Component 시리즈 어노테이션이 붙은 클래스를 발견해 bean을 등록한다. 이후 @EnableAutoConfiguration을 통해 다양한 자동설정이 적용된다
@Component 시리즈 어노테이션
- @Controller
- @RestController
- @Service
- @Repository
- @Configuration
내장 WAS
기본 의존성인 'spring-boot-starter-web'에 Tomcat이 내장되어 있다.
모니터링
스프링 부트에는 Spring Boot Actuator라는 모니터링 도구가 있다.
⚠️ 참고: [스프링부트 핵심가이드]
'개발 > Spring Boot' 카테고리의 다른 글
유지보수가 용이하도록 아키텍처 구성하기 (0) 2024.05.24 아키텍처 개선에 대한 고민 (1) 2024.05.23 Spring Boot 3.X 에 Swagger3를 추가하기 (0) 2023.07.16 Swagger에 대해 (0) 2023.07.16 스프링 부트란? - IoC, DI와 AOP (0) 2023.07.15