Developer/Spring (Java17, Tomcat10)

Spring , Spring과 SpringBoot의 차이

단님 2024. 10. 29. 15:15
728x90
프레임 워크 개념의 차이
Spring

애플리케이션 개발을 위한 전반적인 기능과 설정을 제공하는 프레임 워크

핵심개념으로는 IoC , AOP 등이 있으며 , 주로 MVC 구조 기반의 웹 애플리케이션 개발할 때 사용한다.

Spring 만으로는 설정이 복잡할 수 있어 초기 설정에 많은 시간이 소요될 수 있다.

➡️스프링에 대해 다시보기

 

Spring , 스프링 프레임 워크란 ?

스프링 프레임 워크의 특징을 한줄로 서술한다면," IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크"   경량크기 측면에서 가볍다.스프링은 여러개의 모듈로 구성되어 있으며 , 각 모듈은 하

radaonmommy.tistory.com

 

➡️스프링 컨테이너에 대해 다시보기

 

Spring , FactoryBean . 스프링 컨테이너

스프링이란 ?앞서 보고오기 링크  BeanFactory 개념예전 프로그래밍에서는 절차지향이였고 , 이후에 객체 지향이 되어가면서 다형성이 적용되었다. [✔️절차 지향 ]➡️ 인스턴스 교체가 필요할

radaonmommy.tistory.com

 

SpringBoot

spring을 기반으로 설정과 구성을 자동화 함으로써 개발의 속도를 높이고,

개발자가 필요한 코드 작성에 집숭할 수있게 도와주는 프레임 워크.

내장된 서버와 여러 자동 구성 옵션을 제공하여 설정을 최소화하고, 기본적인 아키텍처를 간단하게 구현할 수있다

 


설정 방식의 차이
Spring

애플리케이션 설정을 XML 파일 또는 자바 설정파일을 통해 상세하게 지정하여야 한다.

필요한 경우 데이터베이스 , 보안 등 추가 설정이 필요 할 수있다.

➡️설정보기

 

Spring , FactoryBean . 스프링 컨테이너

스프링이란 ?앞서 보고오기 링크  BeanFactory 개념예전 프로그래밍에서는 절차지향이였고 , 이후에 객체 지향이 되어가면서 다형성이 적용되었다. [✔️절차 지향 ]➡️ 인스턴스 교체가 필요할

radaonmommy.tistory.com

 

SpringBoot

application.properties 또는 application.yml 파일을 통해 대부분의 설정이 가능하며 ,

기본적으로 제공되는 자동 설정(Auto Configuration)을 통해 추가 설정 없이도 애플리케이션 구성이 가능함.

내장 Tomcat 서버 덕분에 별도의 서버설정 없이도 애플리케이션이 실행 될 수 있음.

 


내장 서버 지원
Spring

기본적으로 내장 서버를 지원하지 않는다.

따라서 애플리케이션 실행을 위해 외부 WAS 서버(Tomcat, Jetty 등)를 별도로 설치하고 배포해야 한다

 

SpringBoot

내장 Tomcat, Jetty, Undertow 등의 서버를 기본으로 제공해 별도 서버 설정 없이 바로 실행할 수 있다.

이로 인해 독립적으로 실행할 수 있는 JAR 파일로 패키징이 가능해 애플리케이션 배포가 용이하.

 


의존성의 관리, Starters
Spring

의존성을 추가할 때 각 라이브러리를 개별적으로 설정해야 하고, 이에 따라 프로젝트의 설정이 다소 복잡해질 수 있다.

 

SpringBoot

다양한 Starters(spring-boot-starter-web, spring-boot-starter-data-jpa 등)를 제공해 특정 기능에 필요한 의존성을 한 번에 추가할 수 있다. 이를 통해 의존성 관리를 단순화하고 개발자가 주요 기능 구현에 집중할 수 있게 돕는다.

 


주요 기능 , 생산성
Spring

유연성과 확장성을 갖춘 다양한 기능을 제공하지만, 세밀한 설정이 필요하기 때문에 개발 속도가 느려질 수 있다.

대규모, 복잡한 엔터프라이즈급 애플리케이션에서는 Spring만으로도 충분히 성능과 효율성을 낼 수 있다.

 

SpringBoot

빠른 개발 속도와 프로덕션 환경으로의 손쉬운 전환을 목표로 설계되어있다.

많은 기본 설정이 자동화되어 있어 설정 및 배포 과정이 간소화되므로, 특히 빠르게 제품을 개발해야 하는 경우 유리하다.