본문 바로가기

Spring Boot/스프링 부트 핵심 가이드

[SpringBoot] 1.2 스프링 프레임워크 vs. 스프링 부트

Summary  : 스프링 부트는 스프링 프레임워크를 쉽게 쓸 수 있게 해준다.

🔍 목차


1.2 스프링 프레임워크 vs. 스프링 부트
1.2.1 의존성 관리
1.2.2 자동 설정
1.2.3 내장 WAS
1.2.4 모니터링

📌 1.2 스프링 프레임워크 vs. 스프링 부트


  • 스프링 프레임워크는 다양한 기능을 제공하는 만큼 설정이 복잡함
  • 이런 문제를 해결하기 위해 등장한 것이 바로 스프링 부트
  • 스프링 부트는 스프링 프레임워크 설정의 많은 부분을 자동화하여 사용자가 편하게 스프링을 사용할 수 있게 해줌

📌 1.2.1 의존성 관리


  • 스프링 프레임워크에서는 모듈의 의존성을 직접 설정해야하고, 호환되는 버전을 맞춰야함
  • 하지만 스프링 부트에서는 spring-boot-starter 라는 의존성이 자주 사용되는 라이브러리를 조합하여 제공해줌
  • 이를 통해 개발자는 라이브러리 호환 문제를 해결할 수 있음
  • spring-boot-starter가 제공하는 주요 라이브러리들
    • spring-boot-starter-web : 톰캣이 내장되어있음
    • spring-boot-starter-test : JUnit, Jupiter, Mockito 등 테스트 라이브러리를 제공
    • spring-boot-starter-jdbc : JDBC 기능 제공
    • spring-boot-starter-security : 인증, 권한 등의 기능 제공
    • spring-boot-starter-data-jpa : JPA 기능 제공
    • spring-boot-starter-cache : 캐시 기능 제공

📌 1.2.2 자동 설정


  • 스프링 부트의 자동 설정 기능은 어플리케이션에 추가된 라이브러리를 실행하는데 필요한 환경 설정을 알아서 찾아줌
  • 예를들어, 스프링 부트 프로젝트를 만들면 자동 생성되는
    SpringBootApplication 클래스에 적힌 @SpringBootApplication 어노테이션은
    @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan이 조합된 어노테이션인데,
  • 여기서 @ComponentScan은 어플리케이션을 실행하자마자 Bean들을 컨테이너에 자동 등록시키고,
    @EnableAutoConfiguration은 다양한 자동 설정을 적용시켜줌

📌 1.2.3 내장 WAS (Web Application Server)


  • 스프링 부트의 spring-boot-starter-web 라이브러리에는 톰캣이 내장되어있음
  • 따라서 별도의 톰캣 설치 없이 어플리케이션 실행 가능
  • 심지어 자동 설정이 톰캣에도 적용되므로 별도의 설정 없이 바로 톰캣 실행 가능
    → 학부때 웹 강의를 들으면서 톰캣을 직접 깔고, 이클립스에 연결하는 실습을 했었는데,
    그때 엄청 복잡했던걸 생각하면,. 정말 큰 장점인 것 같다.

📌 1.2.4 모니터링


  • 개발이 끝나면 해당 시스템이 사용하는 스레드, 메모리, 세션 등 주요 요소를 모니터링 해야하는데,
    스프링 부트에는 '스프링 부트 액추에이터'라는 자체 모니터링 도구가 있으므로 모니터링을 쉽게 할 수 있음

 

※ 이 글은 [스프링 부트 핵심 가이드] 책의 내용을 정리한 글입니다. ※