1 minute read

스프링과 스프링부트의 차이점

스프링(Spring)과 스프링부트(Spring Boot)는 모두 자바 기반의 웹 어플리케이션 개발을 지원하는 프레임워크 이다. 하지만 둘 사이에는 몇 가지 차이점이 존재한다.

요약

  1. Embed Tomcat을 사용하기 때문에, (Spring Boot 내부에 Tomcat이 포함되어있다.) 따로 Tomcat을 설치하거나 매번 버전을 관리해 주어야 하는 수고로움을 덜어준다.
  2. starter을 통한 dependency 자동화. 아마 Spring 유저들이 가장 열광한 기능이 아닐까 싶다. 과거 Spring framework에서는 각각의 dependency들의 호환되는 버전을 일일이 맞추어 주어야 했고, 때문에 하나의 버전을 올리고자 하면 다른 dependeny에 까지 영향을 미쳐 version관리에 어려움이 많았다. 하지만, 이제 starter가 대부분의 dependency를 관리해주기 때문에 이러한 걱정을 많이 덜게 되었다.
  3. XML설정을 하지 않아도 된다.
  4. jar file을 이용해 자바 옵션만으로 손쉽게 배포가 가능하다.
  5. Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다.

상세

  1. 설정의 편의성
    스프링은 설정이 매우 복잡하고, 설정 파일이나 XML 파일을 이용해 많은 작업을 수행해야 한다. 반면 스프링부트는 자동 설정(Auto-configuration)을 제공하여, 어플리케이션을 더욱 쉽게 개발할 수 있도록 도와준다.
  2. 내장된 웹 서버
    스프링은 웹 어플리케이션을 개발할 때 외부의 웹서버를 사용해야 한다. 스프링부트는 내장된 웹 서버(Tomcat, Jetty, Undertow)를 사용하여, 별도의 웹서버 없이도 어플리케이션을 실행할 수 있다.
  3. 의존성 관리
    스프링은 의존성 관리를 위해 Maven이나 Gradle과 같은 빌드 도구를 사용해야 한다. 스프링부트는 의존성 관리를 위해 스타터 의존성(Starter Dependency)을 제공하여, 필요한 의존성들을 쉽게 추가하거나 관리할 수 있다.
  4. 애플리케이션 실행 방법
    스프링은 실행 가능한 JAR 파일을 만들어서 실행할 수 있지만, 외부 웹 서버를 설치하고 설정 파일을 준비하는 등의 과정이 필요하다. 스프링부트는 실행 가능한 JAR 파일을 만들어서 바로 실행할 수 있다.

요약)
스프링부트는 스프링 프레임워크의 확장판으로써, 스프링보다 설정이 쉽고, 웹서버가 내장되어 있으며, 의존성 관리가 용이하며, 실행 방법이 간편하다. 이러한 장점으로 인해 스프링부트는 자바 개발자들 사이에서 매우 인기 있는 프레임워크 중 하나이다.

Leave a comment