1. 스프링 MVC
MVC 패턴을 따르는 웹 애플리케이션 개발을 위한 프레임워크. POJO(Plain Old Java Object) 형태로 구현하는 방식이나 애너테이션 기반 설정, 서블릿 API의 추상화, 스프링 DI 컨테이너와의 연계, 풍부한 확장 기능을 지원하며, 각종 서드파티 라이브러리와의 연계와 같은 다양한 특징과 함께 대규모 시스템 개발에 필요한 기능을 갖추고 있다.
2. 스프링 시큐리티
스프링 기반의 애플리케이션 인증(Authentication)이나 인가(Authorization)와 같은 보안 기능을 쉽게 구현할 수 있게 도와주는 프레임워크. 베이직 인증(Basic) 및 다이제스트 인증(digest authentication), X.509 클라이언트 인증서, LDAP(Lightweight Directory Access Protocol), Open ID등 다양한 인증 방식을 지원 및 기본 구현을 쉽게 제공하며 서드파티에서 제공하는 인증 방식과 연계할 수 도 있다. 웹 애플리케이션의 인증, 인가 이외에도 보안에 관련된 CSRF(Cross Site Request Forgery), 보안응답 헤더 출력 기능(Security HTTP Response Headers), 세션관리(Session Management) 같은 웹 환경에 특화된 기능도 제공하며 이러한 기능은 서블릿 필터에 추가하거나 제외하기 쉽게 구현되어 있다.
3. 스프링 데이터
관계형 데이터베이스(RDBMS)와 NoSQL, Key-Value 같은 다양한 저장소의 데이터에 쉽게 접근할 수 있게 해주는 프레임워크로 Spring Data Commons, Spring Data JPA, Spring Data MongoDB, Spring Data Redis, Spring Data Solr등 10가지가 넘은 다양한 모듈이 존재 한다.
4. 스프링 배치
배치(Batch) 애플리케이션을 개발하기 위한 프레임워크로 대량의 데이터를 처리하는데 필요한 공통 기능을 제공
5. 스프링 인티그레이션
시스템 연계 애플리케이션을 쉽게 개발할 수 있게 도와주는 프레임워크이며, 스프링 인티그레이션을 활용하면 다양한 엔드포인트(endpoint)간의 메시지 교환을 추상화함으로써 엔드포인트의 차이를 의식하지 않고 시스템을 연계할 수 있다.
6. 스프링 클라우드
분산 환경에서 최적화된 애플리케이션을 개발하기 위한 프레임워크와 툴의 모음으로 여러개의 프로젝트로 구성되어 있다.(Spring Cloud Config, Spring Cloud Netflix, Spring Cloud Bus, Spring Colud Connectors)
7. 스프링 툴 스위트
스프링 기반 애플리케이션을 개발하기에 최적화된 이클립스 기반의 IDE. 각종 스프링 프로젝트를 활용한 애플리케이션 개발을 지원하며, 메이븐, 애스펙트제이등의 개발에 필요한 툴이 처음부터 내장돼 있어서 별도 설치가 필요없다. 또한 톰캣등 웹서버가 내장되어 있다.
8. 스프링 IO 플랫폼
스프링 기반 애플리케이션을 개발/실행 할때 필요한 관련 라이브러리나 서드파트 라이브러리 버전을 결정하고 의존 관계를 해결하기 위한 프로젝트
9. 스프링 부트
최소한의 설정만으로 실제 제품 수준의 스프링 기반 애플리케이션을 쉽게 개발할 수 있게 도와주는 프로젝트. 스프링은 "설정이 반이다" 라는 말이 있을 정도로 설정부분이 복잡하고 기능이 많은데, 스프링 부트를 사용하면 기존 XML이나 자바기반설정을 이용한 빈 정의나 서블릿 설정을 하지 않아도 되며 애플리케이션 서버가 내장되어 있어, 별도 서버 설치 및 배포 할 필요가 없다.
댓글