Spring Boot의 개념과 Spring과의 차이

민준·2025년 3월 15일
post-thumbnail

Spring Boot란?

Spring Boot는 (1) 의존성 관리 + (2) 자동 설정 기능을 제공하는 Spring 프레임워크의 확장판

React에서 CRA(Create-React-App)를 사용하면 여러 설정 없이 바로 개발을 시작할 수 있는 것과 비슷


1. Spring Boot의 특징

1) 의존성 관리 (Dependency Management)

  • 복잡한 라이브러리 의존성을 자동으로 관리
  • 버전 충돌 없이 최적의 라이브러리 조합을 제공하는 스타터 패키지 활용

예제: 대표적인 Spring Boot Starter 패키지

스타터 패키지설명
spring-boot-starter-web내장 Tomcat + 자동 설정 지원 (WAS 개발을 쉽게!)
spring-boot-starter-securitySpring Security + 인증, 인가, 권한 관리 기능
spring-boot-starter-jdbcHikariCP 기반의 JDBC 데이터베이스 연결 지원
spring-boot-starter-data-jpaJPA + Hibernate 등 ORM 지원

2) 자동 설정 (Auto Configuration)

  • 다양한 설정을 직접 하지 않아도 Spring Boot가 기본 설정을 제공
  • CRA처럼 Webpack, Babel 설정을 신경쓰지 않아도 되는 것과 유사

자동 설정을 지원하는 핵심 어노테이션: @SpringBootApplication

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
  • @SpringBootApplication은 아래 3가지 기능을 포함합니다.
    1. @SpringBootConfiguration → 추가 @Bean 등록 가능
    2. @EnableAutoConfiguration → 사전 정의된 라이브러리 기본 설정 적용
    3. @ComponentScan → @Controller, @Service 등 자동 Bean 스캔

2. Spring vs. Spring Boot 차이

과거에는 Spring을 사용하려면 복잡한 설정이 필요했지만, Spring Boot는 이를 간편하게 제공

1). Spring (기존 방식)

  • WAR 파일 (Web Application Archive) 생성
  • 외장 톰캣 필요 → 별도로 WAS를 실행하고, WAR 파일을 배포해야 함
  • 운영 환경 설정이 복잡

WAR 배포 과정

  1. 개발자가 WAR 파일 생성
  2. 운영팀이 별도로 실행 중인 Tomcat 서버에 WAR 배포
  3. Tomcat이 WAR을 로딩하여 실행

2). Spring Boot (새로운 방식)

  • JAR 파일 (Java Archive) 생성 → JRE에서 바로 실행 가능
  • 내장 톰캣 포함 → Tomcat을 직접 띄울 필요 없이 java -jar 로 실행 가능
  • 운영 환경 통일 → 어디서 실행하든 동일한 환경 유지

JAR 배포 과정

  1. 개발자가 JAR 파일 생성
  2. java -jar myapp.jar 명령어 실행
  3. 자동으로 내장 Tomcat과 함께 애플리케이션 실행

Spring Boot는 내장 톰캣 덕분에 어디서든 손쉽게 배포하고 실행할 수 있음!

0개의 댓글