-
Spring과 Spring Boot의 차이점Spring(Java) 2024. 8. 29. 00:14
개요
Spring Boot Framework를 이용한 프로젝트를 진행 해보고, Spring Framework를 이용한 프로젝트와 어떤 차이점이 있을까에 대한 궁금증으로 조사를 시작했다.
Spring과 Spring Boot의 특징을 알아보고 차이점을 알아보자
Spring Framework
Spring 레퍼런스에서 말하기를 Spring Framework는
- 스트리밍, 온라인 쇼핑, 각종 솔루션 등 광범위한 사용 범위
- 제어의 역전, 의존성 주입을 통한 유연성
- 필수 요소들을 결합하여 높은 생산성을 보유
- 빠른 개발 시간
- 보안성
- 커뮤니티의 규모가 크고 사용자가 많아 높은 지지력을 보유함
등의 특징을 가지고 있다고 설명하고 있다.
Spring Boot
Spring Boot는 이하 6개의 특징을 가지고 있다.
- 독립 실행형 Spring 어플리케이션 생성
- Tomcat, Jetty 또는 Undertow 내장(WAR 파일을 배포할 필요가 없다)
- 빌드 및 애플리케이션 구성을 단순화하기 위한 '스타터' 종속성
- 스프링이나 3rd party 라이브러리들을 자동으로 구성
- 외부 구성, 측정 항목, 상태확인 등을 바로 사용할 수 있는 기능 제공
- 코드 생성이 필요 없고, XML구성이 불필요
가장 큰 특징은 Tomcat 등이 내장되어 있고, 3rd party 라이브러리들을 자동으로 구성해준다는 점이 아닌가 싶다.
Spring Framework와 Spring Boot의 차이
위 특징은 레퍼런스를 참조한 것이고, 사용자에게 다가올만한 차이점들을 아래 순서로 알아보자
- Dependency
- Configuration
- 편리한 배포
1. Dependency
<Spring에서의 dependency 설정>
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.5</version> </dependency>
Spring에서 웹 애플리케이션을 생성하는데 필요한 최소한의 설정이다.
<Spring Boot에서의 dependency 설정>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.4</version> </dependency>
Spring과 달리 웹 애플리케이션을 구동하는데 단 하나의 종속성만 필요하다.
추가로 다른 라이브러리를 추가할 때 Spring에서는 모든 라이브러리를 종속성으로 추가해야 하지만
Spring Boot에서는 테스트를 위한 스타터 종속성만 있으면 라이브러리들을 자동으로 포함할 수 있다.
2. Configuration
Spring Framework의 경우 configuration설정이 매우 길고, 모든 어노테이션 및 빈 등록 등을 수동으로 해줘야 하고,
Spring Boot Framework는 properties나 yml 파일에 간단하게 설정 가능하다.
3. 편리한 배포
Spring은 WAR 파일을 WAS에 포함시켜 배포해야 하지만,
Spring Boot는 Tomcat, Jetty 등 내장 WAS를 가지고 있기 때문에 jar 파일로 간단하게 배포가 가능하다.
결론
Spring은 기존 자바 엔터프라이즈 개발을 편리하게 해주는 오픈소스 경량급 애플리케이션 프레임워크라고 할 수 있고, 스프링 부트는 개발자들이 스프링을 이용해 더더욱 개발에만 집중하게 해줄 수 있는 프레임워크라고 생각하면 될 것 같다.
출처
'Spring(Java)' 카테고리의 다른 글
[Spring] Builder 패턴의 장점과 사용방법 (0) 2024.02.08 [Spring Boot] Error 정리 (0) 2024.01.31 [Spring] 용어정리(Updated 240131) (0) 2024.01.31 [SpringBoot] QueryDSL 사용법 + 환경설정 (0) 2024.01.31 Spring MVC (0) 2023.11.03