본문 바로가기

IT/Spring

[Spring Boot] 스프링 부트란 무엇인가?

1. 스프링 부트란?

스프링 프레임워크 기반 프로젝트를 복잡한 설정없이 쉽고 빠르게 만들어주는 라이브러리입니다.
사용자가 일일이 모든 설정을 하지 않아도 자주 사용되는 기본설정을 알아서 해줍니다.

2. 왜 스프링 부트를 사용해야할까?

스프링 프레임워크를 사용하려면 많은 XML 설정 파일(web.xml, rootContext.xml, ServletContext.xml 등)들을 작성해야하고, 설정 방법을 모두 외우지 못했다면 기존에 사용했던 설정을 Copy&Paste하거나 개발자가 일일이 인터넷 검색을 통해서 설정해주어야 했습니다. 이는 곧 생산성과 비용 문제로 직결될 수 있습니다.

하지만 스프링 부트를 사용하면 복잡한 설정없이 쉽고 빠르게 스프링 프레임워크를 사용할 수 있습니다.

3. Spring Boot 장점

1) 라이브러리 관리의 자동화

 스프링 부트의 Starter 라이브러리를 등록해서 라이브러리의 의존성을 간단하게 관리할 수 있습니다.

2) 라이브러리 버전 자동 관리

기존에는 스프링 라이브러리의 버전을 하나하나 직접 입력해야 했지만, 스프링 부트는 pom.xml에 스프링 부트 버전을 입력하면 스프링 라이브러리 뿐만 아니라 서드 파티 라이브러리들도 호환되는 버전으로 알아서 다운해줍니다.
<!-- maven -->
<project>
...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0-SNAPSHOT</version>
        <relativePath/>
    </parent>
...

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 버전을 입력하지 않아도 된다. -->
        </dependency>
    </dependencies>

</project>

3) 설정의 자동화

스프링 부트는 @EnableAutoConfiguration 어노테이션을 선언해서 스프링에서 자주 사용 했던 설정들을 알아서 등록해줍니다.
이것을 스프링 부트에 마법이라고 불린다고 합니다.

4) 내장 Tomcat

스프링 부트는 Tomcat을 내장하고 있기 때문에 @SpringBootApplication어노테이션이 선언되어있는 클래스의 main() 메소드를  실행하는 것만으로 서버를 구동시킬 수 있습니다.  내장 톰캣을 사용하려면 특별한 설정없이 Web Starter 의존성만 추가해주면 됩니다.
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

5) 독립적으로 실행 가능한 JAR

웹 프로젝트라면 WAR 파일로 패키징해야하지만 스프링 부트는 내장 톰캣을 지원하기 때문에 JAR 파일로 패키징해서 웹 애플리케이션을 실행시킬 수 있습니다.

 


참조 :
https://kimyhcj.tistory.com/373 [기억과 기록]
elevatingcodingclub.tistory.com/25