Spring Framework는 강력하고 유연한 기능을 제공하지만, 초기 프로젝트 설정은 상당히 복잡했다. 이로 인해 개발자는 프로젝트를 시작하는 데 많은 노력을 기울여야 했다.
Spring Boot는 Opinionated Defaults를 도입하여 개발자가 초기 설정에 신경쓰지 않고 빠르게 프로젝트를 시작할 수 있도록 했다. 이는 "의견 있는 기본 설정"이라는 개념을 통해 Spring Boot는 자동으로 합리적이고 효과적인 기본 설정을 제공한다.
Opinionated Defaults란?
Spring 기반 프로젝트에서는 Maven 또는 Gradle과 같은 빌드 도구를 사용하여 의존성을 관리해야 했다. 이로 인해 각각의 의존성을 명시하고 버전을 관리하는 일이 번거로웠다.
Spring Boot는 Starter 프로젝트를 도입하여 특정 기술 스택에 필요한 의존성들을 쉽게 추가할 수 있도록 했다. 이로써 개발자는 필요한 의존성을 명시하고 불필요한 설정을 줄일 수 있다.
Spring 기반 프로젝트에서는 외부 서버(Tomcat, Jetty, Undertow 등)를 별도로 설정하고 운영해야 했기에, 이로 인해 서버 설정이 번거로웠다.
Spring Boot는 내장 서버를 기본적으로 제공하여 별도의 외부 서버 설정 없이도 애플리케이션을 실행할 수 있다. 개발자는 필요한 경우 내장 서버의 설정을 간단하게 변경할 수 있다. 이러한 내장 서버의 도입으로 빠르고 편리한 프로젝트 설정과 배포를 제공하는데 기여했다.
Spring 기반 프로젝트에서는 특히 스프링 MVC 컨트롤러의 작성, 설정 파일의 생성과 수정 등 반복 작업이 많았다.
Spring Boot는 기본적인 보일러플레이트 코드를 최소화하고, 스프링의 주요 기능들을 미리 구현하여 개발자가 반복 작업에 시간을 낭비하지 않도록 했다. 즉, 스프링 애플리케이션을 더 빠르게 개발할 수 있도록 지원한다.
보일러 플레이트 코드란?
운영 환경에서의 모니터링, 애플리케이션 상태 확인, 보안 강화 등은 개발자들에게 중요한 이슈였으나 설정이 어려웠다.
Spring Boot는 Actuator를 도입하여 애플리케이션의 모니터링과 관리 기능을 간단한 설정만으로 활성화할 수 있도록 했다. 이로써 개발자는 프로덕션 환경에서 애플리케이션을 더 쉽게 모니터링하고 관리할 수 있다.
Actuator란?
Spring Actuator 란 무엇일까
https://tweety1121.tistory.com/entry/Spring-Actuator-란-무엇일까
Spring Boot는 기존의 Spring Framework를 초기 설정이나 복잡한 설정 없이도 빠르게 개발을 시작할 수 있도록 하는 기능을 제공하여 개발 생산성을 향상시켰다.
앞서 말한 Opinionated Defaults와 Starter 프로젝트를 통해 개발자가 직면하는 다양한 어려움을 간소화하고 빠른 개발을 지원한다.
이러한 목표와 해결 방법들은 Spring Boot가 개발자에게 편의성, 유연성, 생산성 등을 제공하며 스프링 기반의 애플리케이션 개발을 좀 더 효율적으로 만들어 준다.