Spring의 종류

  1. Spring Boot
    • 스프링의 개발 환경의 어려움을 보완하고자 만들었다. 환경 설정을 최소화 하고 개발자가 비즈니스 로직에 집줄 할 수 있도록 도와준다.
  2. Spring Framework
    • 스프링의 핵심이 되는 DI(의존성 주입), AOP(관점지향 프로그래밍) 기능들을 제공한다. 웹 애플리케이션을 개발할 때는 스프링 MVC를 사용하는 등 여러가지 기능이 있다.
  3. Spring Data
    • 데이터 연동을 위한 단일 API를 제공한다. 이 API를 기반으로 JPA, MongoDB, MySQL 이러한 RDBMS나 NoSQL과의 연동을 적은 양의 코드로 처리할 수 있도록 도와준다.
  4. Spring Cloud
    • 스프링 클라우드 서비스 레지스트리(Service Registry)와 컨피규레이션 서버(Configuration Server), 서킷 브레이커(Circuit Breaker), 클라우드 버스(Cloud Bus), OAuth2 패턴, API 게이트웨이와 같은 마이크로서비스 기반 아키텍처에서 사용되는 몯느 검증된 패턴을 구현한다.
  5. Spring Security
    • 인증과 허가에 대한 기반 프레임워크 및 관련 모듈을 제공한다. 웹 애플리케이션을 개발할 때 설정해야하는 보안을 간단한 설정과 약간의 코드로 처리가 가능하다.
  6. Spring Session
    • 스프링 세션은 사용자의 세션 정보를 관라하기 위한 API 및 구현을 제공한다.
  7. Spring Intergration
    • 시스템 간의 연동을 위한 메시징 프레임워크를 제공한다.
  8. Spring HATEOAS
    • SPring HATEOAS는 Spring MVC로 작업할 떄 HATEOAS 원칙을 따르는 REST 표현을 쉽게 생성할 수 있도록 몇가지 API를 제공한다.
  9. Sring REST Docs
    • Spring REST Docs는 RESTful 서비스를 문서화하는데 큰 도움이 된다. Asciidoctor로 작성된 수기 문서와 Spring MVC 테스트로 생성된 자동 생성 스니펫을 결합한다. 이 접근 방식을 사용하면 Swagger와 같은 도구로 생성된 문서의 한계를 벗어날 수 있다.
      • Asciidoctor : 페이지를 작성하기 위한 완성된 텍스트 작성 형식
  10. Spring Batch
    • 배치 처리를 위한 기반 프레임 워크를 제공한다. 데이터 처리, 흐름제어, 실패 재처리 등 배치 처리 애플리케이션이 필요로 하는 기능을 기본적으로 제공한다.
      • 배치(Batch) 작업 : 데이터를 실시간으로 처리하는 것이 아니라, 일괄적으로 모아서 처리하는 작업

 

 

- 참고https://spring.io/projects