제가 이해한 Spring Boot는 Spring Spring, MVC, Spring Data, JPA 등과 같은 일반적으로 사용되는 기본 프레임워크를 결합하고, 기본 설정을 제공하며, 개발자들이 이 일련의 기술을 사용할 수 있도록 플러그인 가능한 설계, 즉 다양한 스타터를 제공하는 것입니다. 공식 문장을 빌리자면, Spring 패밀리는 오늘날까지 발전해 왔고, 개발자로서 이미 매우 큰 규모입니다. Spring을 사용하고 싶다면 제품군 내 여러 기술들이 하나씩 구성되어야 하며, 버전 호환성 문제도 있습니다. 사실 꽤 골치 아픈 문제입니다. 가끔 작은 문제들이 생기고, 개발 진행에 큰 영향을 줍니다. 스프링 부팅은 이 문제를 해결하고, 해결책을 제공하는 것입니다. 먼저 어떻게 구성할지 신경 쓰지 않고, 빠르게 개발을 시작해 비즈니스 로직 작성 등 필요한 모든 기술을 실행할 수 있습니다. 스타터에 접속해 직접 사용하고, 바로 사용하는 효과를 추구할 수 있습니다
Spring 프레임워크에는 boot security, jpa 등 많은 확장 기능이 있습니다. 하지만 이 두 가지의 기반은 Spring의 IOC와 AOP입니다. IOC는 의존성 주입 컨테이너를 제공하고, AOP는 단면 지향 프로그래밍을 해결한 뒤, 이 두 가지를 기반으로 다른 확장 제품의 고급 기능을 구현합니다. Spring MVC는 Servlet 기반의 MVC 프레임워크로, 주로 웹 개발 문제를 해결합니다. Spring의 구성이 너무 복잡하고 XML JavaConfig가 여러 문제를 일으키기 때문에, 게으른 사람들이 세상을 바꾸고 Spring을 출시했습니다 Boot convention over configuration은 spring의 구성 과정을 단순화합니다
Spring은 처음에 Factory Mode(DI)와 Agent Mode(AOP)를 활용해 애플리케이션 구성 요소를 분리했습니다. 모두가 이 모델을 매우 유용하다고 생각해, 이 모델에 따라 일부 컴포넌트가 분리된 MVC 프레임워크를 만들고 웹 애플리케이션(SpringMVC)을 개발하는 데 사용했습니다. 그런데 모든 개발이 많은 의존성을 처리해야 하고, 많은 보일러플레이트 코드를 작성하는 것이 번거로워서 게으른 통합 패키지(스타터)인 Spring Boot를 만들었습니다. |