스프링은 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
자바 SE로 된 자바 객체 POJO를 자바 EE에 의존적이지 않게 연결해주는 역할을 한다.
스프링의 특징으로는 크기와 부하 측면에서 경량시킨 것과 IOC 기술로 애플리케이션의 느슨한 결합을 도모시킨 것이 있다.
스프링 부트는 스프링에서 사용하는 프로젝트를 간편하게 셋업할 수 있는 서브 프로젝트이다.
독립 컨테이너에서 동작할 수 있기때문에 임베디드 톰켓이 자동으로 실행된다.
임베디드 컨테이너에서 애플리케이션을 실행시키기에는 다소 불안전해서 큰 프로젝트에는 사용하지 않는 것이 좋다.
→ starter를 통한 dependency 자동화 및 내장 톰캣 기능이 차이점
스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.
장점
경량 컨테이너IoC(Invertion of Control: 제어 역행)
Di(Dependency Injection: 의존성 주입)
AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)
Spring Framework 은 기능이 많은만큼 환경설정이 복잡하다. 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 Spring Boot 이다. Spring Boot 는 Spring Framework 를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 정말 편하게 Spring 을 활용할 수 있도록 돕는다. Spring Boot Starter Dependency 만 추가해주면 바로 API를 정의하고, 내장된 Tomcat 이나 Netty 로 WAS 를 실행할 수 있다. 심지어 스프링 홈페이지의 Initializar 를 사용하면 바로 실행 가능한 코드를 만들어준다. 실행환경이나 의존성 관리 등의 인프라 관련 등은 신경쓸 필요 없이 바로 코딩을 시작하면 된다. 그리고 바로 그것이 스프링의 키 포인트이다.