Spring

Spring Boot란?

do_hyuk 2024. 1. 4. 17:00

1. spring boot 란?

스프링 부트는 단독적이고, 상용화 수준의 스프링 기반 어플리케이션을 단지 실행할 수 있을 정도로 

쉽게 만들 수 있다.

  • 기존 스프링 프레임워크 위에 구축되었다.
  • 스프링 부트를 사용하면 독립실행형과 프로덕션 등급 스프링 기반 어플리케이션을 쉽게 만들 수 있다.
  • 설정의 많은 부분을 자동화하여 사용자가 편하게 스프링을 활용할 수 있도록 도와준다.

2. spring과 spring boot의 차이

spring framework의 경우, dependency를 설정해 줄 때 설정 파일이 매우 길고, 모든 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 boot의 경우에는 dependency를 spring framework보다 쉽게 설정해 줄 수 있으며,

버전 관리도 자동으로 해준다.

implementation 'org.springframework.boot:spring-boot-starter-web'

더해서, test 프레임워크를 사용하고자 하는 경우 spring framework의 경우에는 spring test, JUnit, Hamcrest, Mockito 등

모든 라이브러리를 추가해줘야 하지만, spring boot에서는 spring boot starter test만 추가해주면 된다.


spring framework의 경우 configuration을 설정할 때도 매우 길고, 모든 어노테이션 및 빈 등록을 설정해 주어야 한다.

 

하지만 spring boot에서는 applicationproperties 파일이나 application.yml파일에 설정하면 된다.

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf

spring framework와 달리 spring boot에는 autoconfiguration이라는 것이 있다.

spring boot로 실행할 수 있는 어플리케이션을 만들기 시작하면, 클래스에 @SpringBootAplication이라는 어노테이션을

확인할 수 있다. 이를 통해 많은 외부 라이브러리, 내장 톰캣 서버 등이 실행될 수 있다.

  • 만일 제거하고 실행할 경우, 일반적인 자바 프로그램과 동일하게 실행된다.
  • 어노테이션 : 주석, 추후 특정 어노테이션을 처리하는 컴파일러가 어노테이션을 읽으면 알맞게 처리를 진행한다.
                         기능이 포함된 것이 아니다. 프로그램 곳곳에 분산된 기능을 한 곳에 모아 처리하고 싶을 때 사용한다.


  • @CompenentScan
    @Component, @Controller, @Repository, @Service라는 어노테이션이 붙어있는 객체들을 스캔하여
    자동으로 Bean에 등록해준다.

  • @EnableAutoConfiguration
    @ComponentScan 이후 사전에 정의한 라이브러리들을 Bean에 등록해준다.

이러한 장점들을 통해 spring boot framework는 spring framework보다 개발자가 더더욱 개발에만 집중할 수 있도록 도와줌


요약하자면 spring boot는 표준 spring framework의 모든 기능을 포함하는 동시에 어플리케이션 개발을 훨씬 쉽게

만들어주는 프레임워크이다. spring과 비교할 때 모든 spring boot의 속성이 자동 구성되기 때문에 훨씬 더 짧은 시간에

어플리케이션을시작하고 실행할 수 있다.