스프링 vs 스프링부트

kkambbak1·2023년 12월 27일
0

23.12.27 수

스프링부트

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

Spring Boot을 사용하면 "그냥 실행"할 수 있는 독립형 프로덕션 등급의 Spring 기반 애플리케이션을 쉽게 만들 수 있습니다.

차이점

1. 톰캣 내장서버

스프링 부트가 없던 시절.. 배포를 하려면?
1.WAS를 설치한다
2.개발한 코드를 war 파일로 빌드한다.
3.war파일을 WAS 폴더 하위에 넣는다.
4.WAS를 실행한다.

스프링부트에서는 라이브러리로 포함하는 내장 톰캣 기능 제공
-> war파일이 아닌 jar 파일로 패키징하여 바로 main메소드 실행가능

2. Dependency 및 Configuration 관리

Spring Framework에서 Dependency 설정을 해주려면,

우선 설정파일이 매우~ 길고, 일일이 버전을 설정해주어야 함.

반면 스프링부트에서는

implementation 'org.springframework.boot:spring-boot-starter-web'

build.gradle에 코드 한줄 추가로 해결 가능함.

Spring Framework의 경우 configuration설정을 할 때도 매우 길고,

모든 어노테이션 및 빈 등록 등을 설정해 줘야 합니다.

Spring Boot Framework는 application.properties파일이나 application.yml파일에 설정하면 됩니다.

3. AutoConfiguration (자동구성)

@Repository
public class MemberDao{
	private final JdbcTemplate jdbcTemplate;

	public ProductDao(JdbcTemplate jdbcTemplate){
		this.jdbcTemplate = jdbcTemplate;
	}
}

JdbcTemplate을 빈으로 등록한 적이 없음에도, 주입받고 있다. 어떻게?

spring-boot-autoconfigure 라는 모듈을 통해 수많은 자동 구성을 제공.

@SpringBootApplication 어노테이션을 보면..

@ComponentScan
@Component, @Controller, @Repository, @Service라는 어노테이션이 붙어있는 객체들을 스캔해 자동으로 Bean에 등록해줍니다.

@EnableAutoConfiguration
@ComponentScan 이후 사전에 정의한 라이브러리들을 Bean에 등록해줍니다.
사전에 정의한 라이브러리들은 다음 경로에서 확인할 수 있습니다.
하지만 사전에 정의한 라이브러리라고 전부 Bean에 등록되진 않습니다.

EnableAutoConfiguration을 키로 하는 외부 의존성들을 확인할 수 있습니다. 이 의존성들을 모드 스캔하며 조건에 따라 의존성을 주입해 줍니다.

결론

Spring Framework는 기존에 EJB를 대신해 자바 애플리케이션을 더 쉽게 만들 수 있게 해 주고, Spring Boot Framework는 Spring Framework보다 개발자가 더더욱 개발에만 집중할 수 있도록 도와주는 프레임워크입니다.

https://spring.io/projects/spring-boot/
https://www.youtube.com/watch?v=YdE4krx0dsM&t=113s
https://programforlife.tistory.com/68

profile
윤성

0개의 댓글