반응형

🌱 Spring Boot란?
Spring Boot는 스프링 프레임워크 기반의 애플리케이션을 쉽고 빠르게 개발할 수 있도록 도와주는 도구입니다.
기존의 Spring Framework는 설정이 매우 복잡하고, 필요한 라이브러리를 일일이 추가하고 XML이나 Java 코드로 설정을 많이 해야 했습니다. 이런 불편함을 줄이고자 나온 것이 바로 Spring Boot입니다.
1. Spring Boot의 주요 특징
1. 자동 구성 (Auto Configuration)
application.properties
또는application.yml
파일만으로 대부분의 설정이 가능합니다.- 개발자가 명시적으로 설정하지 않아도, 상황에 맞게 기본 설정을 자동으로 적용해줍니다.
2. 의존성 관리 (Starter Dependencies)
- 필요한 기능을 쉽게 추가할 수 있는
starter
가 제공됩니다. - 예:
spring-boot-starter-web
,spring-boot-starter-data-jpa
,spring-boot-starter-security
<!-- 예: 웹 기능 사용을 위한 starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3. 내장 서버 (Embedded Server)
- 별도로 톰캣이나 제티 등을 설치하지 않아도 됨
- 애플리케이션 실행 시 자동으로 내장 서버가 올라갑니다
java -jar
만으로 배포 가능
4. 프로덕션 준비 기능 내장
- 모니터링, 로깅, 헬스 체크 등을 위한 Actuator 기능 제공
/actuator/health
,/actuator/metrics
등을 통해 시스템 상태 확인 가능
5. Spring과 100% 호환
- 기존 스프링 프레임워크의 모든 기능을 그대로 사용할 수 있습니다.
- 단지 설정과 구조를 단순화했을 뿐입니다.
2. Spring Boot 주요 구성 예시
1. @SpringBootApplication
@Configuration
,@EnableAutoConfiguration
,@ComponentScan
을 포함하는 기본 어노테이션
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
2. application.yml
or application.properties
- 설정을 간편하게 지정할 수 있습니다.
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: user
password: pass
3. 자주 사용하는 Starter 종류
Starter 이름 | 용도 |
spring-boot-starter-web | 웹 앱 개발(Spring MVC 포함) |
spring-boot-starter-data-jpa | JPA 기반 데이터 접근 |
spring-boot-starter-security | 인증과 권한 |
spring-boot-starter-test | 테스트 도구 (JUnit, Mockito 등 포함) |
spring-boot-starter-thymeleaf | Thymeleaf 템플릿 엔진 |
spring-boot-starter-validation | Bean Validation 지원 |
4. Spring Boot의 목표
- 빠른 개발: 복잡한 설정 없이 바로 실행 가능
- 간편한 배포: 독립 실행형 JAR 파일로 패키징
- 생산성 향상: 스타터 의존성, 자동 설정, 내장 서버
- 테스트 지원: 다양한 테스트 도구 내장
Spring Boot는 스프링 개발의 진입 장벽을 낮추고, 개발 속도를 높여주는 강력한 도구입니다. 그래서 최근의 대부분의 스프링 기반 프로젝트는 Spring Boot를 기반으로 시작됩니다.
반응형
'Framework > Spring' 카테고리의 다른 글
[ Spring ] Spring security - 스프링 시큐리티 알아보기 (0) | 2025.03.23 |
---|---|
[ Spring ] Spring Data - 스프링 데이터 프로젝트 알아보기 (0) | 2025.03.23 |
[ Spring ] 스프링 프로젝트들을 간략하게 알아보기 (0) | 2025.03.23 |
[ Spring ] Business Layer - 스프링 모듈의 비지니스 레이어 알아보기 (0) | 2025.03.23 |
[ Spring ] 스프링의 모듈 구조 (0) | 2025.03.23 |