스프링 공식 문서에서는 Spring Framework를 아래와 같이 설명한다.
Spring Framework는 모든 종류의 배포 플랫폼에서 최신 Java 기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공합니다.
Spring의 핵심 요소는 애플리케이션 레벨에서의 인프라 지원입니다. Spring은 특정 배포 환경에 불필요한 연결 없이 팀이 애플리케이션 레벨 비즈니스 로직에 집중할 수 있도록 엔터프라이즈 애플리케이션 plumbing(규약)에 초점을 맞춥니다.
이 말을 쉽게 말하자면 우리가 Spring Framework를 사용하여 기업용 애플리케이션을 보다 쉽게 만들 수 있다는 점이다.
스프링부트 공식 문서에서는 Spring Boot를 아래와 같이 설명한다.
Spring Boot는 단독 실행되는, 상용화 가능한 수준의 스프링 기반 애플리케이션을 쉽게 만들어 낼 수 있습니다. 최소한의 설정으로 스프링 플랫폼과 서드파티 라이브러리들을 사용할 수 있도록 하고 있습니다.
우리는 SpringBoot를 사용하여 Spring기반 애플리케이션을 쉽게 만들 수 있다는 뜻이다.
a) Dependency Injection(DI) - 의존성 주입
- 객체 간 결합을 느슨하게 만든다.
- 코드 재 사용성 증가 및 단위테스트가 용이
b) 중복된 코드 제거
- 비즈니스 로직에만 집중이 가능하다.
Spring Framework는 기능이 많은만큼 환경설정 끝내면 반은 끝났다는 말이 있을정도로 환경설정이 복잡하다. 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 SpringBoot이다.
SpringBoot는 이러한 설정의 많은 부분을 자동화 하여 사용자가 편하게 활용할 수 있도록 돕는다.
해결하고자 하는 것
a) Auto Configuration 자동 실행
b) 쉬운 의존성 관리
c) 내장 서버
POJO 기반의 Enterprise Application 개발을 쉽고 편하게 할 수 있도록 한다.
스프링 부트는 빠른시간에 애플리케이션이 제품이 되도록 하는 것을 목표로 한다.
Spring과 Spring Boot는 라이브러리가 아니고 프레임워크 이다. 단순히 코드를 제공하는 것이 아니고 프로그래밍 방법을 제공한다. 이렇게 방법을 제공하면 개발자가 그에 맞춰 개발하기 때문에 획일화된 프로그램이 만들어진다고 생각했다. 하지만 이렇게 지원/제공하는 방식으로 개발하지 않는다면 유지보수를 하는데에 어마어마한 비용이 들것이다.
따라서 특정 목적을위한 프로그램을 만드는 데에 있어서 정형화된 방식은 효율성을 극대화 시켜준다. 웹 서비스 구축 경험이 없는 초보자도 Spring Boot를 기반으로 개발한다면 정말 빠르고 간편하게 서비스를 만들어서 배포, 운영까지 할 수 있을 것이다.
spring공부 시작하려는데 도움이 많이된 글이네요!