[Spring] Spring Project 종류

Donghyun Kim·2022년 8월 5일
0

Spring Projects

Spring Boot

스프링은 개발 환경 설정이 꽤나 까다로운 편입니다. 그래서 스프링팀은 이러한 스프링의 단점을 보완하고자 '스프링 부트'를 만들었습니다. 스프링 부트는 필요한 환경 설정을 최소화하고 개발자가 비지니스 로직에 집중할 수 있도록 도와줘 생산성을 크게 향상시킵니다.

Spring Framework

스프링을 이용해서 애플리케이션을 개발할 때 기반이 되는 프레임워크입니다. 스프링의 핵심 기능인 DI와 AOP 기능을 제공합니다. 웹 애플리케이션을 개발할 때 사용하는 스프링 MVC, 스프링 ORM 등의 기능도 스프링 프레임워크에 포함되어 있습니다.

Spring Data

데이터 연동을 위한 단일 API를 제공하며, 이 API를 기반으로 JPA, MongoDB, Neo4j, Redis 등 RDBMS와 NoSQL과의 연동을 적은 양의 코드로 처리할 수 있도록 해줍니다.

Spring Cloud

스프링 클라우드는 서비스 레지스트리(Service Registry)와 컨피규레이션 서버(configuration server), 서킷 브레이커(circuit breaker), 클라우드 버스(cloud bus), OAuth2 패턴, API 게이트웨이와 같은 마이크로서비스 기반 아키텍처에서 사용되는 모든 검증된 패턴을 구현합니다. 스프링 부트 프로젝트와 스프링 클라우드를 사용하면 반복적인 작업을 피하고 고품질의 안정적인 마이크로서비스 기반 분산 시스템을 빠르게 구축하고 적은 시간과 노력으로 시스템을 지속적으로 변화시킬 수 있습니다.

Spring Security

인증과 허가에 대한 기반 프레임워크 및 관련 모듈을 제공합니다. 웹 애플리케이션을 위한 보안을 간단한 설정과 약간의 코드 구현으로 처리할 수 있습니다.

Spring Session

스프링 세션은 사용자의 세션 정보를 관리하기위한 API 및 구현을 제공합니다.

Spring Intergration

시스템 간의 연동을 위한 메시징 프레임워크를 제공합니다.

Spring HATEOAS

Spring HATEOAS는 Spring MVC로 작업 할 때 HATEOAS 원칙을 따르는 REST 표현을 쉽게 생성 할 수 있도록 몇 가지 API를 제공합니다.

Spring REST Docs

Spring REST Docs는 RESTful 서비스를 문서화하는 데 도움이됩니다. Asciidoctor로 작성된 수기 문서와 Spring MVC 테스트로 생성 된 자동 생성 스니펫을 결합합니다. 이 접근 방식을 사용하면 Swagger와 같은 도구로 생성 된 문서의 한계에서 벗어날 수 있습니다. 정확하고 간결하며 잘 구조화 된 문서를 생성하는 데 도움이됩니다. 이 문서를 통해 사용자는 최소한의 번거 로움으로 필요한 정보를 얻을 수 있습니다.

Spring Batch

배치 처리를 위한 기반 프레임워크를 제공해줍니다. 데이터 처리, 흐름 제어, 실패 재처리 등 배치 처리 애플리케이션이 필요로 하는 기능을 기본적으로 제공합니다.

Spring AMQP

Spring AMQP 프로젝트는 핵심 Spring 개념을 AMQP 기반 메시징 솔루션 개발에 적용합니다. 메시지 송수신을위한 고급 추상화로 "템플릿"을 제공합니다. 또한 "수신기 컨테이너"를 사용하여 메시지 기반 POJO를 지원합니다. 이러한 라이브러리는 AMQP 리소스 관리를 용이하게하는 동시에 종속성 주입 및 선언적 구성의 사용을 촉진합니다. 이 모든 경우에서 Spring Framework의 JMS 지원과 유사한 점을 볼 수 있습니다. 이 프로젝트는 두 부분으로 구성됩니다. spring-amqp는 기본 추상화이고 spring-rabbit은 RabbitMQ 구현입니다.

Spring for Android

Android 용 Spring은 Android 앱에서 사용할 Spring 프로젝트 제품군의 구성 요소를 제공하도록 설계된 프레임 워크입니다. 모든 Spring 프로젝트와 마찬가지로 Android 용 Spring의 진정한 힘은 얼마나 쉽게 확장 할 수 있는지에 있습니다.

Spring CredHub

Spring CredHub는 Cloud Foundry 플랫폼에서 실행되는 CredHub 서버에서 자격 증명을 저장, 검색 및 삭제하기위한 클라이언트 측 지원을 제공합니다. CredHub는 다양한 유형의 자격 증명을 안전하게 저장, 생성, 검색 및 삭제할 수있는 API를 제공합니다. Spring CredHub는 CredHub API에 대한 Java 바인딩을 제공하므로 Spring 애플리케이션을 CredHub와 쉽게 통합 할 수 있습니다.

Spring Flo

Spring Flo는 파이프 라인 및 간단한 그래프를위한 기본 임베드 가능한 HTML5 비주얼 빌더를 제공하는 JavaScript 라이브러리입니다. 이 라이브러리는 Spring Cloud Data Flow에서 스트림 빌더의 기반으로 사용됩니다. Flo에는 커넥터, 제어 노드, 팔레트, 상태 전환 및 그래프 토폴로지와 같은 통합 흐름 디자이너의 모든 기본 요소가 포함되어 있습니다. 특히 포괄적 인 워크 플로를 만들고 검토하기 위해 설계된 텍스트 셸, DSL 지원 및 그래픽 캔버스가 있습니다.

Spring for Apache Kafka

Spring for Apache Kafka (spring-kafka) 프로젝트는 핵심 Spring 개념을 Kafka 기반 메시징 솔루션 개발에 적용합니다. 메시지 전송을위한 고급 추상화로 "템플릿"을 제공합니다. 또한 @KafkaListener 어노테이션 및 "리스너 컨테이너"를 사용하여 메시지 기반 POJO에 대한 지원을 제공합니다. 이러한 라이브러리는 종속성 주입 및 선언적 사용을 촉진합니다. 이 모든 경우에서 Spring Framework의 JMS 지원 및 Spring AMQP의 RabbitMQ 지원과 유사한 점을 볼 수 있습니다.

Spring LDAP

Spring LDAP는 Spring Jdbc와 동일한 원칙을 기반으로 구축 된 Java로 LDAP 프로그래밍을 단순화하는 라이브러리입니다. LdapTemplate 클래스는 생성, NamingEnumerations 루핑, 예외 처리 및 리소스 정리와 같은 기존 LDAP 프로그래밍과 관련된 모든 배관 작업을 캡슐화합니다. 따라서 프로그래머는 JdbcTemplate이 완화하는 것과 같은 방식으로 데이터 (DN 및 필터)를 찾을 수있는 위치와 데이터로 수행 할 작업 (도메인 개체에 매핑, 바인딩, 수정, 바인딩 해제 등)을 처리 할 수 있습니다. 실제 SQL을 제외한 모든 프로그래머와 데이터가 도메인 모델에 매핑되는 방식. 이 외에도 Spring LDAP는 NamingExceptions에서 확인되지 않은 예외 계층으로의 예외 변환과 필터, LDAP 경로 및 속성 작업을위한 여러 유틸리티를 제공합니다.

Spring Mobile

Spring Mobile은 Spring 웹 사이트에 요청하는 디바이스 유형을 감지하고 해당 디바이스를 기반으로 대체보기를 제공하는 기능을 제공하는 프레임 워크입니다. 모든 Spring 프로젝트와 마찬가지로 Spring Mobile의 진정한 힘은 얼마나 쉽게 확장 할 수 있는지에 있습니다.

Spring Roo

Spring Roo는 즉각적인 결과를 빠르고 쉽게 제공 할 수있는 경량 개발자 도구입니다. 무엇보다도 Java로 100% 코딩하고 기존 Java 지식, 기술 및 경험을 모두 재사용 할 수 있습니다.

Spring Shell

Spring Shell 프로젝트의 사용자는 Spring Shell jar에 의존하고 자체 명령 (Spring Bean에서 메서드로 제공됨)을 추가하여 완전한 기능을 갖춘 쉘 (일명 명령 줄) 애플리케이션을 쉽게 빌드 할 수 있습니다. 명령 줄 애플리케이션을 만드는 것이 유용 할 수 있습니다. 프로젝트의 REST API와 상호 작용하거나 로컬 파일 콘텐츠로 작업합니다.

Spring Statemachine

Spring Statemachine은 애플리케이션 개발자가 Spring 애플리케이션과 함께 상태 머신 개념을 사용하는 프레임 워크입니다. 상태 머신은 동작이 항상 일관되게 보장되어 비교적 디버그하기 쉽기 때문에 강력합니다. 이는 기계가 시작될 때 운영 규칙이 돌로 작성되기 때문입니다. 아이디어는 애플리케이션이 유한 한 수의 상태로 존재할 수 있으며 사전 정의 된 특정 트리거가 애플리케이션을 한 상태에서 다음 상태로 이동할 수 있다는 것입니다. 이러한 트리거는 이벤트 또는 타이머를 기반으로 할 수 있습니다. 애플리케이션 외부에서 높은 수준의 로직을 정의한 다음 상태 시스템에 의존하여 상태를 관리하는 것이 훨씬 쉽습니다. 이벤트를 보내거나 변경 사항을 수신하거나 단순히 현재 상태를 요청하여 상태 시스템과 상호 작용할 수 있습니다.

Spring Vault

Spring Vault는 익숙한 Spring 추상화 및 비밀 액세스, 저장 및 취소를위한 클라이언트 측 지원을 제공합니다. Vault와 상호 작용하기위한 저수준 및 고수준 추상화를 모두 제공하여 사용자가 인프라 문제에서 벗어날 수 있습니다. HashiCorp의 Vault를 사용하면 모든 환경에서 애플리케이션에 대한 외부 비밀 데이터를 중앙에서 관리 할 수 있습니다. Vault는 애플리케이션 데이터, 원격 애플리케이션 / 리소스에 대한 사용자 이름 / 암호와 같은 정적 및 동적 비밀을 관리하고 MySQL, PostgreSQL, Apache Cassandra, Consul, AWS 등과 같은 외부 서비스에 대한 자격 증명을 제공 할 수 있습니다.

Spring Web Flow

Spring Web Flow는 Spring MVC를 기반으로하며 웹 애플리케이션의 "흐름"을 구현할 수 있습니다. 흐름은 사용자에게 일부 비즈니스 작업 실행을 안내하는 일련의 단계를 캡슐화합니다. 여러 HTTP 요청에 걸쳐 있고, 상태가 있고, 트랜잭션 데이터를 처리하고, 재사용 가능하며, 본질적으로 동적이며 오래 실행될 수 있습니다. Spring Web Flow의 최적 지점은 항공편 체크인, 대출 신청, 장바구니 체크 아웃 또는 양식에 확인 단계 추가와 같은 제어 된 탐색 기능이있는 상태 저장 웹 애플리케이션입니다. 이러한 시나리오의 공통점은 다음 특성 중 하나 이상입니다.

Spring Web Service

Spring Web Services (Spring-WS)는 문서 중심 웹 서비스를 만드는 데 중점을 둔 Spring 커뮤니티의 제품입니다. Spring Web Services는 XML 페이로드를 조작하는 여러 방법 중 하나를 사용하여 유연한 웹 서비스를 생성 할 수 있도록 계약 우선 SOAP 서비스 개발을 촉진하는 것을 목표로합니다. 이 제품은 Spring 자체를 기반으로하므로 종속성 주입과 같은 Spring 개념을 웹 서비스의 필수 부분으로 사용할 수 있습니다. 사람들은 여러 가지 이유로 Spring-WS를 사용하지만, 대부분은 웹 서비스 모범 사례를 따를 때 부족한 대체 SOAP 스택을 찾은 후에 사용합니다. Spring-WS는 모범 사례를 쉬운 방법으로 만듭니다. 여기에는 WS-I 기본 프로필, 계약 우선 개발 및 계약과 구현 간의 느슨한 결합과 같은 관행이 포함됩니다.

참고자료 및 출처

profile
"Hello World"

0개의 댓글