java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 프레임워크이다. Java Virtual Machine, JVM 에서 작동한다.
개발 초기에 기본 설정, 적용 기술만 잘 선택한다면, 기술보단 비즈니스 로직 자체에 더 집중하여 구현할 수 있다.
스프링 등장 이전 EJB 기술이 주로 사용되었는데, 더 나아가 불필요한 코드들을 걷어내고 복잡성을 줄이기 위해 탄생한 것이 스프링이다.
스프링으로 개발 할 때에 설정해주어야 하는 복잡한 것들을 기존의 복잡한 설정을 대신 해주는 스프링 부트를 사용하면 간략하게 줄일 수 있다.
즉, 스프링 부트는 스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크이다.
어떠한 것(목적)을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조로, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.
예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구한하기 위해선 페이지 구현, DB관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야 할 것이고, 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 프레임워크다.
참조 자료
https://namu.wiki/w/Spring(%ED%94%84%EB%A0%88%EC%9E%84 스프링 정의
https://www.codestates.com/blog/content/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 스프링과 스프링부트 사용 이유, 생성 방법