
스프링 부트의 핵심 기능은
입니다.
스프링 부트의 특별한 점은 '의존성'을 쉽게 '관리'한다는 점입니다.
한 특정 버전의 의존성이 다른 의존성의 어떤 특정 버전에서만 테스트 됐을 가능성이 있습니다. 이런 경우에 의존성 꼬임현상이 발생하여 좌절을 경험할 수도 있습니다. 이러한 버그를 해결하는 일은 많은 시간 소모에 비해 성과가 크지 않습니다.
'스프링 부트'와 '스타터'는 이런 어려움을 해결하기 위해 등장했습니다.
이는 동일한 방식으로 특정 기능을 제공한다는 입증된 전제를 바탕으로 제작된 BOM(Bills of Materials)입니다.
spring-boot-starter-web같은 단일 스타터를 추가하면 단일 어플리케이션에 필요한 기능을 모두 제공합니다.
즉 단일 스타터에 포함된 여러 의존성 안에 들어 있는 각 의존성 내의 여러 라이브러리 버전이 모든 의존성에 맞게 동기화됩니다.
과거 어플리케이션 서버에 자바 어플리케이션을 배포하는 과정은 매우 복잡했습니다.
스프링 부트는 모든 의존성이 포함된 단일 스프링 부트 JAR을 배포하여 JVM 환경 내에서 간단하게 어플리케이션을 실행 가능하게 합니다.
또한 운영 환경에서도 다양한 시스템 설정을 간편하게 지원합니다.
스프링 부트를 처음 접하는 사람이 마법이라고 부르는 자동 설정(Auto-Configuration)은 스프링 부트 개발자의 생산성을 향상시키는 가장 강력한 도구입니다.
개발자는 서로의 소스를 공유하며 개발하기에 특정 패턴이 자주 반복됩니다. 특정 설계, 개발, 활동의 80~90%는 반복된다고 봐도 무관합니다.
스프링 부트 스타터 역시 이러한 반복 패턴을 간소화합니다.
예를 들어
스프링 부트의 스프링 데이터로 예를 들어봅시다. 데이터베이스에 액세스하기 위해
이 모든 것이 간소화되는 것이 스프링 부트입니다.
스프링 부트는 이러한 관습을 활용해 보일러 플레이트 코드를 줄이며, "설정보다 관습"이라는 정신을 추구합니다.
이런 자동 설정은 개발자 우선 환경을 제공하는데 집중합니다. 개발자가 환경 설정 작업이 아니라 비즈니스로직을 만드는데 집중할 수 있도록 합니다.
예를 들어 로컬 호스트 및 기본 포트 등의 기본값을 지정하지 않아도
로컬에서 작업하기 편한 기본값을 제공합니다.
이런 자동 설정 말고 특정 의견을 수용하여 자동 설정을 오버라이딩할 수도 있습니다.
즉, 자동 설정(Auto-Configuration): 스프링 부트는 애플리케이션을 실행할 때 필요한 설정을 자동으로 처리합니다. 이를 통해 개발자는 수동으로 설정을 구성하지 않아도 기본적인 설정과 애플리케이션의 요구에 따른 설정이 자동으로 이루어집니다.
스프링 부트의 세 가지 핵심 기능은
입니다. 세 가지 기능 모두 커스터마이징 가능하지만, 그렇게 할 필요는 없습니다. 개발자가 비즈니스로직에 집중할 수 있도록 최적의 환경을 제공하는 것이 Spring-boot입니다.
정보 감사합니다.