비기능적 요구사항(성능, 보안, 확장성, 안전 등)을 만족하는 구조와 구현된 기능을 안정적으로 실행하도록 제어해주는 구조의 라이브러리 모음
스프링은 경량의 제어 역행과 관점 지향 컨테이너 프레임워크이다.
경량
: 전체 스프링의 크기는 1MB 남짓한 하나의 JAR파일, 스프링에 의해 발생하는 부하는 무시해도 되는 수준
제어 역행
: 제어 역행(IOC)라는 기술을 통해 애플리케이션의 느슨한 결합을 도모한다.
관점 지향
: 스프링은 관점지향 프로그래밍을 위한 풍부한 지원을 한다.
컨테이너
: 애플리케이션 객체의 생명 주기와 설정을 포함하고 관리한다는 점에서 스프링은 일종의 컨테이너이다.
: 엔터프라이즈 개발의 복잡함을 상대하는 Spring의 전략을 구조로 표현