Spring Framework
자바 플랫폼에서의 오픈소스 애플리케이션 프레임워크
앤터프라이즈급 애플리케이션을 개발하기 위한 기능을 제공
경량 컨테이너로 자바 객체를 담고 직접 관리 -> IoC 기반
*framework
프로그램을 개발하기 위해 사용되는 틀을 제공하는 프로그램
ex) java framework - spring, 전자정부 프레임워크
ex) orm framework - mybatis, hibernate
의존성 검색 DL (Dependency Lookup)
컨테이너에서 객체 관리를 위해 별도의 Bean에 저장하는데, 개발자가 사용하고자 하는 빈을 검색하는 방법
IoC에서의 DI
각 클래스 사이에 필요로 하는 의존관계를 Bean 설정 정보를 바탕으로 컨테이너가 자동으로 연결
spring framework vs spring boot
스프링 프레임워크는 개발자가 직접 설정 파일을 작성해 컨테이너를 구성하고, 필요한 bean 객체를 등록하고, bean 객체 간의 의존성을 설정해야 하며, 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요하다.
스프링부트는 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크이다. 개발자가 직접 설정 파일을 작성할 필요 없이 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해준다.
스프링부트는 spring MVC, spring data JPA, spring Security 등의 기능을 자동으로 설정하며 개발자가 별도 설정 파일을 작성하지 않아도 사용 가능하다.
따라서 스프링 프레임워크를 보다 세밀하게 제어하고자 하는 경우에는 스프링을 사용하고, 빠르고 간단하게 스프링 애플리케이션을 개발하고자 하는 경우에는 스프링부트를 사용한다.