[Spring] 스프링 부트(Spring Boot)란?

1. 소개

Spring Framework을 더 사용하기 쉽게 기본값으로 여러 라이브러리들을 추가해 준 버전

스프링 부트와 스프링 프레임워크는 다르다!

 

 

Spring Framework?

  • 2002년에 자바 기반의 엔터프라이즈 애플리케이션을 개발하기 위해 나온 프레임워크
  • IOC (Inversion of Control), DI (Dependency Injection), AOP (Aspect-Oriented Programming) 등의 개념을 도입하여 객체 간 결합도를 낮추고 유지보수성을 높임
  • 스프링을 활용하면 웹, 데이터베이스, 보안, 메시징 등 다양한 기능을 통합하여 개발할 수 있음

특징

  1. 의존성 주입 (DI, Dependency Injection) 지원
    • 객체간의 의존 관계를 XML, Java Config, 어노테이션을 통해 설정 가능
    • 유지보수성이 높아지고 객체 간 결합도를 낮출 수 있음
  2. AOP (Aspect-Oriented Programming) 지원
    • 로깅, 트랜잭션 관리, 보안 등 공통적인 기능을 별도로 관리 가능
  3. 트랜잭션 관리 (Transaction Management)
    • JDBC, JPA, Hibernate 등 다양한 ORM 프레임워크와 함께 사용 가능
  4. Spring MVC 지원
    • 웹 애플리케이션 개발을 위한 강력한 MVC 아키텍처 제공
  5. JDBC 및 ORM 통합
    • 기존의 번거로운 JDBC 작업을 단순화하고 JPA, MyBatis 등의 ORM 프레임워크와 통합 가능

 

단점

  • 설정이 복잡함
    • XML 또는 Java Config 파일을 작성해야 해서 설정 과정이 많음
  • 초기 개발 비용이 큼
    • 프로젝트를 세팅하는 데 많은 시간이 소요됨

 

Spring Boot??

  • 2014년에 나온 스프링 프레임워크의 확장판
  • 스프링 기반 애플리케이션을 더 쉽게 설정하고 개발할 수 있도록 만든 경량화된 프레임워크
  • Spring Boot = " 스프링 프레임워크 + 자동 설정 + 내장 서버"

 

특징

  1. 자동 설정 (Auto Configuration)
    • spring-boot-starter를 사용하면 기본 설정이 자동으로 적용됨
    • XML 설정 없이 간단한 애노테이션 기반 설정만으로 프로젝트를 구성 가능
    • ex) spring-boot-starter-web을 추가하면 자동으로 Spring MVC + 내장 톰캣 설정이 됨
  2. 내장 웹 서버 제공 (Embedded Web Server)
    • 별도의 외부 톰캣 설치 없이 내장된 서버를 실행할 수 있음
  3. Spring Boot Starter 패키지 제공
    • spring-boot-starter-data-jap, spring-boot-starter-web, spring-boot-starter-security 등 다양한 스타터패키지 제공
  4. JAR 파일 실행 가능
    • 스프링 부트 프로젝트는 독립 실행형 JAR 파일로 패키징 가능 -> 바로 실행 가능
  5. Actuator 기능 제공
    • spring-boot-starter-actuator를 사용하면 애플리케이션 상태 모니터링 가능

 

단점

  • 자동 설정이 편리하지만, 커스텀 설정은 복잡할 수 있음
  • 내장된 라이브러리를 강제로 사용해야 함

 

차이점 정리

비교 항목 Spring Framework Spring Boot
설정 방식 XML 또는 Java Config 사용 자동 설정
웹 서버 외부 웹 서버 필요 내장 웹 서버 제공
프로젝트 설정 의존성 설정이 복잡 spring-boot-starter로 간편 설정
배포 방식 WAR 파일 배포 가능 독립 실행 가능한 JAR 파일 지원
속도 및 생산성 설정이 많아 개발 속도 느림 설정이 자동화되어 개발 속도 빠름
유연성 원하는 설정을 자유롭게 가능 자동 설정이 많아 상대적으로 떨어짐
Actuator 지원 별도 설정 해야함 기본 제공
목표 유연한 확장성과 다양한 기능 제공 빠른 개발과 간편한 설정 제공

 

결론

 

Spring Boot는 Spring Framework를 더 쉽고 빠르게 사용하기 위해 만들어진 프레임워크다!

차이점을 잘 알고 상황에 맞게 쓰자!

'Spring' 카테고리의 다른 글

[Spring] 동적으로 HTTP 상태 코드 설정  (0) 2025.02.04
[Spring] Bean  (0) 2025.02.04
[Spring] JPA(Java Persistence API)  (0) 2025.02.04
[Spring] IoC, DI, AOP  (0) 2025.02.04
[Spring] 컴포넌트 스캔(Component Scan) 정리  (0) 2025.02.04