자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크
스프링은 스프링 컨테이너 또는 어플리캐이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공.
스프링 컨테이너는 설정정보를 참조해 앱을 구성하는 오브젝트를 생성하고 관리한다.
프로그래밍 모델 이란 앱 코드가 어덯게 작성돼야 하는지에 대한 기준서이다.
오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델
스프링을 사용하면 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어나며 플렋블한 앱을 만들 수 있는데, 이를 가능하게 하는 것이 서비스 추상화이다.
앱 코드에 산재해서 나타나는 부가적인 기능을 독립적으로 모듈화하여 프로그래밍 모델
스프링은 방대한 양의 기술 API를 제공한다.
스프링을 사용한 다는 것은 이 세가지 요소를 적극적으로 활용해 앱을 개발한다는 것이다.
스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두가지 중요한 가치
단순함
스프링이 강력히 주장하는 것은 가장 단순한 객체지향적인 개발모델 POJO 프로그래밍이다.
유연성