Springboot 원리 정리

Springboot 스프링 부트 원리 정리

백기선님의 강의인 Springboot 개념과 활용 강의를 듣고 공부한 내용을 정리한 글

스프링 부트 원리 정리

의존성 관리

gradle에 spring-boot-starter-web을 추가하기만 해도 자동으로 여러 의존성들을 자동으로 가져온다.

starter는 의존성을 관리하며 spring-boot-dependencies에 스프링부트가 사용하는 주요 라이브러리 버전들을 관리하고 있다.

자동 설정

@SpringbootApplication 애노테이션 내부에는 EnableAutoConfigurationComponentScan이라는 2가지 애노테이션을 갖는다.

EnableAutoConfigurationComponentScan의 목적은 @SpringbootApplication이 달려있는 패키지에 존재하는 모든 빈들을 읽어서 IoC 컨테이너로 관리하기 위해 존재하는 애노테이션이다.

일반적으로 스프링 부트는 2단계에 걸쳐서 빈들을 읽어온다.

  1. ComponentScan
  2. EnableAutoConfiguration

ComponentScan@Component 애노테이션을 비롯하여 @Service, @Controller, @RestController, @Repository 애노테이션이 달린 클래스들을 빈으로 등록한다.

EnableAutoConfigurationspring.factories에 존재하는 의존성 목록들을 읽어서 빈으로 등록한다.

스프링 부트는 개발자가 재정의하거나 설정해야할 부분들을 줄여준다.

내장 웹 서버

스프링 부트의 주요한 목적 중 하나는 독립적으로 실행가능한 애플리케이션을 만들어주는 것이다.

최근 마이크로서비스가 부상하면서 스프링 또한 시대에 발맞춰 독립적으로 실행 가능한 애플리케이션을 만들 수 있는 기능을 스프링 부트에 추가하였고 이는 스프링 부트가 갖는 주요 목적 중 하나가 되었다.

이를 위해 자동적으로 내장 웹서버가 들어가있다. (Tomcat)

이러한 사용 또한 사용자가 특별히 설정 없이 자동 설정으로 설정되어져 있고 실행만 하면 바로 웹서버를 실행할 수 있게 되었다.

Reference

인프런 백기선님의 스프링 부트 개념과 활용



© 2022. by minkuk

Powered by minkuk