본문 바로가기

Spring/Framework

[Spring] Spring Framework와 Spring Boot의 차이점

Spring의 유래

Spring은 Java를 통해 앱을 제작할 때 간소화된 모듈식 접근 방식을 제공하는 오픈 소스 프로젝트입니다. Spring은 초기 Java 개발의 복잡성에 대한 반발로 2003년에 시작되었으며 Java 앱 개발을 지원합니다. Spring이라는 이름이 혼자 사용되면 일반적으로 애플리케이션 프레임워크 자체나 전체 제품 또는 모듈 그룹을 가리킵니다. Spring Boot는 Spring Framework를 확장해 빌드된 특정 모듈입니다.

Spring 프레임워크, Spring Boot, Java가 한꺼번에 작동하는 방식에 대한 배경을 살펴보면 Spring Boot의 정의가 보입니다. Java 프레임워크에서 웹 앱과 마이크로 서비스 개발을 간소화하고 가속화하기 위한 도구가 Spring입니다.


스프링 프레임워크?

Spring Framework는 모든 종류의 배포 플랫폼에서 최신 Java 기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공합니다.

Spring의 핵심 요소는 애플리케이션 수준의 인프라 지원입니다. Spring은 엔터프라이즈 애플리케이션의 "배관"에 중점을 두어 팀이 특정 배포 환경에 불필요하게 연결하지 않고 애플리케이션 수준의 비즈니스 논리에 집중할 수 있도록 합니다.

 

스프링 부트?

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

최소한의 작업으로 시작할 수 있도록 Spring 플랫폼 및 타사 라이브러리에 대한 독단적인 견해를 취합니다. 대부분의 Spring Boot 애플리케이션에는 최소한의 Spring 구성이 필요합니다.

 

Spring Framework와 Spring Boot 비교

  Spring Spring Boot
정의 Java를 기반으로 하는 오픈 소스 웹 애플리케이션 프레임워크 Spring 프레임워크를 기반으로 확장한 모듈
언제 사용? 유연성 사용 편의성
의견 비제시형 접근 방식 의견 제시형 접근 방식
사용자 지정 코드에서 종속성을 제거하기 위해 빠르게 실행되는 앱을 개발하면서 개발 시간을 줄여야 할 때
매우 고유한 구성을 구현하기 위해 상용구 코드를 작성 또는 XML을 구성하지 않음
기업용 애플리케이션을 개발 REST API를 개발
주요 기능? 종속성 주입 자동 구성
내장 서버? 수동으로 구성을 빌드 “구성보다는 규칙”이라는 기본 원칙에 따라 Spring 및 타사 프레임워크를 자동적으로 구성
XML구성? XML 구성 관련 지식이 필요 XML 구성이 필요 없습니다.
앱 개발/테스트용 도구? Spring 프레임워크만으로는 앱 개발이나 테스트를 위한 CLI 도구를 제공하지 않음 Spring 모듈의 하나로서 Spring Boot에는 Spring 기반 앱의 개발과 테스트를 위한 CLI 도구가 있음

 

요약

Spring Boot는 Spring에 기능을 포함하고 있으며 복잡한 환경설정을 자동으로 해주기 때문에 개발자가 개발에 더 집중할 수 있도록 해주는 것 같다.

 

 

 

참고사이트

https://spring.io/why-spring

https://azure.microsoft.com/ko-kr/resources/cloud-computing-dictionary/what-is-java-spring-boot/