Spring?
스프링 프레임워크(영어: Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 특히, 국내는 '자바 공화국' 이라 불릴 정도로 대다수의 기업들이 Java언어 및 Spring 프레임 워크를 사용한다.
- 참고 : 언어별 웹 개발 프레임 워크
Python - Django
Javascript - Node.js
Java - Spring
Spring 프레임워크 특징
1. 제어반전(IoC: Inversion of Control) 기반
- 컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
2. 의존성 주입(DI: Dependency Injection) 기반
- 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결한다.
3. 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming) 기반
- 트랜잭션, 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리 가능하다.
Spring Boot?
스프링만을 사용하여 웹 애플리케이션을 만들어 보았다면 상당히 복잡한 설정들로 인해 많은 어려움을 겪었을 것이다. 스프링부트는 스프링의 복잡한 설정을 자동화하고 단순화 하여 누구나 스프링을 쉽게 사용할 수 있게 만들었다.
Spring Boot 특징
- Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨
- 단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성
- WAS에 배포하지 않고도 실행할 수 있는 JAR파일로 Web Application을 개발 가능
- SQL 인젝션, XSS(cross-site scripting), CSRF(cross-site request forgery), 클릭재킹(clickjacking)과 같은 보안 공격을 기본으로 막아 줌