[Spring] Spring vs Spring Boot

thingzoo·2023년 6월 23일
0

Spring

목록 보기
6/54
post-thumbnail

Spring

  • Spring은 Java 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크
  • 2004년에 1.0이 등장한 이후 20년가까이 사랑받으며 계속해서 업그레이드 해온 현재는 Spring 6.0이 등장한 아주 오래되고 강력한 프레임워크
  • Spring 프레임워크는 AOP, IoC/DI 등과 같은 아주 강력한 핵심 기능을 가짐
  • 하지만 이러한 핵심 기능들을 사용하기 위해서는 너무나도 많은 xml 설정들이 필요했음
  • 이러한 불편한 점들을 개선하기 위해 2014년 SpringBoot가 등장!!

SpringBoot

  • SpringBoot는 기존의 xml 설정 대신 Java의 애너테이션 기반의 설정을 적극적으로 사용하고 있기 때문에 무겁고 작성하기 힘들던 xml 대신에 애너테이션을 사용하여 아주 간편하게 설정 가능
    • 기본적으로 개발에 필요한 설정 정보들을 일반적으로 많이 사용하는 설정 값을 default로 하여 자동으로 설정 가능
  • 외부 라이브러리나 하위 프레임워크들의 의존성 관리가 매우 쉬움
    • 기존에는 외부 라이브러리와 프레임워크를 사용하기 위해서 각각의 버전들의 호환성을 직접 확인해가면서 의존성들을 설정해야 했지만 SpringBoot에서는 spring-boot-starter-web 처럼 필요한 외부 라이브러리들과 프레임워크들을 의존성에 맞게 starter로 묶어서 제공
      • 따라서 이전처럼 각각의 버전 호환성을 직접 확인할 필요가 없어짐
  • 내장 서버(Apache Tomcat) 제공
    • Spring 프레임워크에서는 서버를 실행시키기 위해 Apache Tomcat을 직접 다운로드 받고 설정하고 프로젝트에 삽입 해야함
    • 이러한 불편함을 해결하기 위해 SpringBoot에서는 기본적으로 starter-web dependency를 설정하면 자동으로 내장형 Apache Tomcat 제공

dependency 추가

기본적으로 Spring Web을 추가하면 Spring Boot를 사용할 수 있다.
초기 Spring Boot 프로젝트 설정은 intelliJ IDEA(유료)는 Spring initializr를 제공하지만, intelliJ IDEA CE(무료)는 Spring initializr 사이트에서 직접 설정해야 한다.

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글