스프링

스프링이 뭔지 간단히 설명해보시오

스프링은 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.

자바 SE로 된 자바 객체 POJO를 자바 EE에 의존적이지 않게 연결해주는 역할을 한다.

스프링의 특징으로는 크기와 부하 측면에서 경량시킨 것과 IOC 기술로 애플리케이션의 느슨한 결합을 도모시킨 것이 있다.

스프링이랑 스프링 부트의 차이점

스프링 부트는 스프링에서 사용하는 프로젝트를 간편하게 셋업할 수 있는 서브 프로젝트이다.

독립 컨테이너에서 동작할 수 있기때문에 임베디드 톰켓이 자동으로 실행된다.

임베디드 컨테이너에서 애플리케이션을 실행시키기에는 다소 불안전해서 큰 프로젝트에는 사용하지 않는 것이 좋다.

→ starter를 통한 dependency 자동화 및 내장 톰캣 기능이 차이점

Spring Framework

스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.

장점

경량 컨테이너IoC(Invertion of Control: 제어 역행)

Di(Dependency Injection: 의존성 주입)

AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)

Spring Boot?

Spring Framework 은 기능이 많은만큼 환경설정이 복잡하다. 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 Spring Boot 이다. Spring BootSpring Framework 를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 정말 편하게 Spring 을 활용할 수 있도록 돕는다. Spring Boot Starter Dependency 만 추가해주면 바로 API를 정의하고, 내장된 Tomcat 이나 Netty 로 WAS 를 실행할 수 있다. 심지어 스프링 홈페이지의 Initializar 를 사용하면 바로 실행 가능한 코드를 만들어준다. 실행환경이나 의존성 관리 등의 인프라 관련 등은 신경쓸 필요 없이 바로 코딩을 시작하면 된다. 그리고 바로 그것이 스프링의 키 포인트이다.