공부/스프링프레임워크

[토비의 스프링부트] Containerless

ghhong 2023. 2. 19. 17:01

컨테이너리스 : 서버리스

웹 컴포넌트는 웹 컨테이너 안에 들어가 있어야 한다.

웹 컴포넌트는 동적 응답을 주기 위해 존재한다.

웹 컨테이너는 여러 웹 컴포넌트를 가지고 있다.

자바에서는 웹 컴포넌트를 서블릿이라고 부른다. 웹 컨테이너가 서블릿 컨테이너이다.

스프링 컨테이너는 서블릿 컨테이너의 뒤에 존재한다. 여러 빈을 갖고 서블릿을 통해 들어온 요청을 받아서 스프링 컨테이너에 요청해서 빈에게 작업을 하도록 한다.

스프링 컨테이너가 서블릿 컨테이너를 대체할 수는 없다.

우리는 스프링 컨테이너에 어떤 빈을 등록하고 동작을 지정하고만 생각하고싶은데, 서블릿 컨테이너를 띄워야만 서비스를 실행할 수 있다.

스프링에서 web.xml에 설정 해본 적이 있을 것이다. 이를 지정해야만 서블릿 컨테이너를 띄울 수 있었다. 이는 프로젝트 시작할 때만 한 번 지정하고 그 뒤로는 보지도 않는다.

서블릿 컨테이너 전체에서 동작하기 위해서는 war파일로 빌드되어야 하고, 더 중요한 것은 폴더 구조가 중요하다. 경로를 잘 지정하여 프로젝트 폴더구조를 지정해야한다. 배포를 위해서는 서버 설정도 해야하고.. 등등 설정해줘야 하는 것들이 많다. 꼭 필요하지만 그렇게 중요하지 않은 내용들을 알고 있어야 한다. 이러한 것들이 진입장벽이 되어 매번 찾아봐야 한다.

서블릿 컨테이너가 없는 아키텍쳐를 만들어줘! 라는 요청으로 만들어진 스프링 부트는 이러한 수고를 덜어주기 위해 컨테이너리스로 개발되었다.

이러한 상황에서는 빈으로 등록할 수 있으면 바로 웹 환경에서 동작하는 스프링 애플리케이션을 만들고 사용할 수 있게 됐다.

=> 스프링 부트를 이용하면 특정 메인메서드를 실행하면 서버를 띄우고 ~~~등등 작업이 실행되도록 한다. (독립 실행형 애플리케이션, standalone application)

 

출처 : https://www.inflearn.com/course/lecture?courseSlug=토비-스프링부트-이해와원리&unitId=136735&tab=curriculum 

 

학습 페이지

 

www.inflearn.com