스프링 부트 소개
스프링 기반으로 실무 환경에서 사용 가능한 수준의 독립실행형 어플리케이션을 고민 없이 빠르게 작성할 수 있도록 도와주는 여러가지 도구의 모음
스프링 != 스프링 부트임을 반드시 기억하자!
스프링 부트의 핵심 목표
전체적으로 앞에 소개에서 나온 핵심 내용들을 포함하고 있다.
- 빠르고 광범위한 영역의 스프링 개발 경험을 제공
- 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변현 가능
- 프로젝트에서 필요로 하는 다양한 비기능적인 기술 제공
- 코드 생성이나 XML 설정을 필요로 하지 않음
스프링 부트의 역사
"Containerless 웹 개발 아키텍처 지원" 요청에서 시작되었다.
컨테이너리스 개발
- containerless
- 개발의 핵심이 아닌 단순 반복 잡업(서블릿 컨테이너 설치, WAR 폴더 구조, web.xml ...)을 제거하여 개발할 수 있도록 하자!
- 서블릿 컨테이너 신경 안쓰고 개발할 수 있도록 하자!
- serverless
- 서버에 대한 설치 관리를 신경 쓰지 않고 서버 애플리케이션 개발을 가능하도록 만드는 방법
- Web Component(servlet)
- 동적인 컨텐츠를 만들어서 제공
- Web Container 안에서 존재
- Web Container(Servlet Container)
- Web Component의 라이프 사이클 관리
- 다수의 Web Component 관리
- 요청을 Web Component로 전달(Handler Mapping)
Jar & War
강한 주장을 가진 도구
- 스프링
- not opinionated
- 유연함(개발자가 원하는데로 세팅)
- 대신 개발자의 고민 부담이 크다.
- 스프링 부트
- opinionated(의견을 고집한다)
- 스프링 부트가 추천하는 구성과 설정을 이용(개발자는 핵심 로직에 집중하고 나머지는 스프링 부트가 제공하는데로 써라)
- 단, 설정을 원하는데로 구성하는 것도 가능은 하다.
스프링 부트의 이해