🧑🏻‍💻 Programming/JAVA

[JAVA] Spring vs Spring Boot

koko1177 2025. 4. 5. 02:34
반응형

 

1. Spring 생태계

Spring vs Spring Boot

 

Spring : 스프링 프로젝트들의 모음

모든 스프링 프로젝트들은 Spring Framework를 기반으로 동작

Spring 생태계가 커져가고, Spring Framework가 제공하는 기능들이 많아지면서

여러 가지 어려움이 생김.

 

그래서 등장한 서브 프로젝트 → "Spring Boot"

Spring 생태계의 핵심 Spring Framework, 이를 도와주는 서브 프로젝트 Spring Boot

 

 

2. Spring Framework 란?

Spring Framework를 통해 자바 기반의 어플리케이션 제작 가능

개발자들은 비즈니스 로직에 집중 가능

 

Spring 이전에 EJB라는 프레임워크가 있었음.

But, 너무 비쌈. 비즈니스 로직보다 EJB를 사용하기 위한 코드가 너무 많음. EJB에 의존적이고 종속적인 개발 → 기존 JAVA 장점(객체지향 등..) 살리지 못함.

 

EJB 다음 등장한 Spring

Spring 은 초기 세팅만 잘 해놓으면 EJB와 동일한 기능 제공, 비즈니스 로직&애플리케이션 기술의 분리 달성, 객체지향 장점

 

BUT, 점점 커져만 가는 Spring 생태계와 Spring Framework의 기능들...

이에 더해 다양한 오픈소스의 등장으로 외부 라이브러리를 함께 사용할 일 ↑

→ Spring 으로 개발을 시작할 때 직접 해야 하는 설정이 너무 많아지고 복잡해짐.

 

 

3. Spring Boot 란?

그래서 등장한 것이 Spring Boot

Spring Boot를 사용하면 Spring 기반의 애플리케이션 쉽게 제작 가능

 

Spring을 이용한 개발에 필요한 복잡한 설정을 Spring Boot가 해줌.

→ 개발자는 즉시 어플리케이션 개발 시작 가능

 

Spring Boot 또한 Spring 생태계에 포함되어 있는 Spring 프로젝트 중 하나이기 때문에 단독으로 사용 X

Spring Boot 는 Spring Framework와 항상 같이 사용해야 함.

 

 

4. Spring Boot 덕분에 우리는! (Spring Boot 가 제공하는 편리함)

4-1. 내장 서버

Spring Boot 가 없던 시절, 단독 Spring으로 개발을 할 때 있던 어려움?

1. WAS 설치
2. 개발한 웹 애플리케이션 코드를 WAR로 빌드
3. 빌드한 WAR 파일을 WAS 폴더 하위에 넣음
4. WAS 실행
→ 굉장히 귀찮은 과정들

Spring Boot 는 톰캣을 라이브러리로 포함하는 내장 톰캣 기능 제공

개발자들은 별도로 WAS 설치할 필요 없이 메인 메서드를 한번 실행하면 

웹 서버와 본인이 만든 Spring을 바로 띄울 수 있음.

 

4-2. 편리한 의존성 & 권장 버전 관리

Spring Boot 가 없던 시절, Spring 으로 개발 시작하려면..
1. 어떤 라이브러리를 사용할지 선택 
2. 각 라이브러리의 버전 선택

Spring Boot 는 라이브러리의 버전 관리를 도움.

ex) 'spring.dependency-management' 라는 플러그인을 추가하면, 각 라이브러리의 버전 생략 가능

Spring Boot 는 기본 라이브러리 묶음 제공 

Spring Boot 는 'Spring-boot-starter' 패키지 제공

Spring-boot-starter-web : 스프링 MVC, 내장 톰캣 등
Spring-boot-starter-idbc : IDBC, HikeriCP 커넥션 풀 등

ex)  'org.springframework.boot:spring-boot-starter-web'

 

4-3. 자동 설정

Spring Boot의 자동 구성

: 일반적으로 자주 사용하는 수많은 빈들을 자동으로 등록해주는 기능

ex) jdbcTemplate, DataSource, TransactionManager 등..

더보기

Spring Boot 가 등록해 주는 빈들은 

spring-boot-autoconfigure라는 라이브러리에서 확인 가능

 

 

 

 

반응형