1.3.4 Spring Boot
Spring Boot는 Spring 기반 애플리케이션을 쉽고 빠르게 개발할 수 있도록 돕는 도구입니다. 설정의 단순화, 자동 구성, 내장 서버 활용 등을 통해 개발자가 보일러플레이트 코드와 설정 작업을 줄이고, 바로 비즈니스 로직의 개발에 집중할 수 있게 해줍니다.
Spring Boot의 소개와 특징
Spring Boot는 마이크로서비스 아키텍처 구축, 독립적으로 실행 가능한 어플리케이션 개발, 클라우드 네이티브 앱 개발에 이상적인 환경을 제공합니다. 주요 특징으로는 자동 구성, 스타터 종속성, 내장 서버 사용, 메트릭과 상태 확인을 위한 액추에이터, 넓은 범위의 테스트 도구 지원 등이 있습니다.
Spring Boot 시작하기: 프로젝트 설정과 구조
Spring Boot 애플리케이션을 시작하는 것은 매우 간단합니다. Spring Initializr(https://start.spring.io/)를 통해 프로젝트를 생성하고, 필요한 의존성을 선택하기만 하면 초기 설정이 완료된 프로젝트를 바로 얻을 수 있습니다.
-
프로젝트 구조: 기본적인 Spring Boot 프로젝트 구조는 다음과 같습니다.
-
src/main/java/
: 애플리케이션의 자바 코드가 위치합니다. -
src/main/resources/
: 애플리케이션 리소스(설정 파일, 정적 리소스 등)가 위치합니다. -
src/test/java/
: 테스트 코드가 위치합니다. -
pom.xml
또는build.gradle
: 프로젝트의 의존성과 빌드 설정을 관리합니다.
-
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Spring Boot의 주요 기능: 자동 설정, 액추에이터
-
자동 설정:
@SpringBootApplication
애노테이션은@Configuration
,@EnableAutoConfiguration
,@ComponentScan
을 모두 포함하고 있어, 스프링의 자동 구성을 활성화하고, 애플리케이션의 메인 클래스를 구성 요소 검색의 기점으로 설정합니다. 이를 통해 Spring Boot는 애플리케이션의 필요에 맞게 스프링 구성을 자동으로 조정합니다. -
액추에이터:
- Spring Boot Actuator는 실행 중인 애플리케이션을 모니터링하고 관리할 수 있는 다양한 기능을 제공합니다. 이는 애플리케이션의 건강 상태, 메트릭스, 환경 속성, 로그 설정 등을 실시간으로 확인할 수 있는 엔드포인트를 제공합니다.
- 액추에이터는 보안과 관련된 정보를 포함할 수 있으므로, 접근 제어를 통해 적절히 보호해야 합니다. 액추에이터의 엔드포인트는
application.properties
또는application.yml
파일을 통해 세부적으로 설정할 수 있으며, 필요에 따라 활성화하거나 비활성화할 수 있습니다.// application.properties management.endpoints.web.exposure.include=health,info,metrics
Spring Boot는 Spring 기반 애플리케이션 개발을 간소화하고 가속화하는 강력한 도구입니다. 자동 설정, 액추에이터와 같은 기능은 개발자가 애플리케이션의 구성과 모니터링을 보다 쉽게 관리할 수 있도록 해줍니다.
source: DevOps/1.Programming_Languages_&_Frameworks/1.3.Spring/1.3.4.md