반응형
스프링 프로젝트에 대해서 알아볼까요?
- Spring Framework 는 엔터프라이즈 애플리케이션의 핵심 기능을 위한 기반을 제공함.
- 의존성주입
- 웹
- 데이터
- 기타등등
- Spring Framework 이외의 프로젝트는 아래 기능을 제공한다.
- 배포
- 클라우드
- 빅데이터
- 배치
- 보안
- 즉, 엔터프라이즈 공간의 다른 문제에 대한 통합 및 솔루션을 제공.
- 그럼, 주요 스프링 프로젝트는 무엇이 있을까?
- Spring Boot
- Spring Cloud
- Spring Data
- Spring Batch
- Spring Security
- Spring HATEOAS
- 이외의 여러 프로젝트들이 진행되고 있음. 자세한 사항은 아래 참고페이지를 참고하시면 될것 같습니다. ^^
- 아래는 참고페이지임.
- https://spring.io/projects
- 해당 페이지 서두에 아래와 같이 적혀 있음.
- From configuration to security, web apps to big data—whatever the infrastructure needs of your application may be, there is a Spring Project to help you build it. Start small and use just what you need—Spring is modular by design.
- 아래는 참고페이지임.
Spring Boot
- 애플리케이션을 어떻게 개발해야 하는지에 대한 고민을 해결해줌.
Spring Cloud
- 클라우드용 애플리케이션을 개발하기 위한 고민을 해결해줌.
- 즉, 클라우드용 애플리케이션을 개발하기 위해 빠르게 진보하고 있는중임.
- 분산 시스템의 일반적인 패턴을 위한 솔루션을 제공함.
- 개발자가 공통 패턴을 구현하는 애플리케이션을 신속하게 생성할 수 있게 해줌.
- 아래와 같은 주요 패턴을 지원함.
- 구성관리
- 서비스 디스커버리
- 서킷 브레이커
- 지능형 라우팅
- 아래와 같은 주요 패턴을 지원함.
Spring Data
- 현재 자주 쓰이고 있는 SQL 데이터 베이스 및 다양한 NoSQL 데이터베이스와 관련된 여러 종류의 데이터베이스에 일관된 데이터 액세스 방식을 제공함.
- 즉, 다양한 스펙 및 Data Repository와의 통합을 제공함.
- JPA(JAVA Persistence API)
- MongoDB
- Redis
- Solr
- Gemfire
- Apache Cassandra
- 주요기능은 아래와 같음.
- Method 이름에서 쿼리를 결정해 Repository 및 Object mapping 에 대한 추상화를 제공함.
- 간단한 Spring Integration
- Spring MVC Controller 와의 통합.
- 고급 자동 감사 기능
- 생성자, 생성일, 마지막 수정자, 마지막 수정일
Spring Batch
- 고성능 요구사항이 있는 대용량 배치 프로그램을 위한 솔루션을 제공함.
- 주요기능은 아래와 같음
- 작업을 시작, 중지 및 재시작하는 기능
- 데이터를 Chunks 로 처리하는 기능
- 단계를 재시도하거나 실패한 단계를 건너뛸 수 있는 기능
- 웹기반 관리 인터페이스
Spring Security
- 애플리케이션에 대한 선언적 인증 및 권한 부여 기능을 제공함.
- 주요기능은 아래와 같음.
- 간소화된 인증 및 권한 부여
- Spring MVC와 Servlet API와의 통합
- 공통 보안 공격 방지 지원
- SAML / LDAP와 통합할 수 있는 모듈 기능
Spring HATEOAS
- HATEOAS는 Hypermedia As The Engine Of Application State의 약자로 하이퍼미디어를 REST API의 상태 정보를 관리하기 위한 매커니즘으로 활용하는 것을 말함
- REST API에서 클라이언트에 리소스를 넘겨줄 때 특정 부가적인 리소스의 링크 정보를 넘겨줌
- 이를 통해서 REST API의 리소스 상태에 따른 관리를 진행함.
- 그럼, HATEOAS를 쓰는 이유는 몰까요? ^^
- 공부한 바로는, 아래와 같은 기존 REST API의 단점을 보완하려고..^^
- 단점은 아래와 같습니다.
- 하나, REST API는 앤드포인트 URL이 정해지고 나면 이를 변경하기 어렵다는 단점이 존재함.
- 만일 API의 URL을 변경하게 되면 모든 클라이언트의 URL까지 수정해야하기 때문에 번거로워지므로 기존 다른 API를 지속적으로 추가하게 됨.
- 즉, URL 관리가 어렵게 됨.
- 둘, 전달받은 정적 자원의 상태에 따른 요소를 서버 단에서 구현하기 어렵기 때문에 클라이언트 단에서 이 부분에 대한 로직을 처리해야함
- 하나, REST API는 앤드포인트 URL이 정해지고 나면 이를 변경하기 어렵다는 단점이 존재함.
- 다시말해서, 위의 단점들을 links 요소를 통해 href 값의 형태로 보내주기 때문에 자원 상태에 대한 처리를 링크에 있는 URL을 통해 처리할 수 있게됨.
- REST API에서 클라이언트에 리소스를 넘겨줄 때 특정 부가적인 리소스의 링크 정보를 넘겨줌
- 주요목표
- 즉, 클라이언트로부터 서버를 분리하자는 것.
- Spring HATEOAS는 HATEOAS 구현체를 제공함.
- 특히, Spring MVC로 구현된 REST 서비스에 적합함.
- 주요기능은 아래와 같음.
- 링크가 깨지는 것을 줄이기 위해, 서비스를 제공하는 링크 정의를 단순화함.
- JAXB(XML기반) 및 JSON 통합 지원
- JAXB(Java Architecture for XML Binding)란?
- JAXB(Java Architecture for XML Binding)는 자바 클래스를 XML로 표현하는 자바 API
- 참고페이지
- JSON 이란?
- JAXB(Java Architecture for XML Binding)란?
- 서비스 소비자 지원
- 클라이언트사이드
결론
- Spring Framework 이외의 프로젝트는 아래 기능을 제공한다.
- 배포
- 클라우드
- 빅데이터
- 배치
- 보안
- 즉, Spring 프로젝트트들은 엔터프라이즈 공간의 다른 문제에 대한 통합 및 솔루션을 제공하고 있음.
- 오늘도 Spring Framework 외의 주요 프로젝트들이 무엇이 있는지에 대한 마술(?) 한가지 획득완료, 감사합니다.^^
300x250
'좋아하는 것_매직IT > 1.spring' 카테고리의 다른 글
5.Spring, 의존성 주입에 대해서 이해한번 해봅시다. ^^ (0) | 2021.01.02 |
---|---|
4.Spring, 스프링 프레임워크 5.0 의 새로운 기능에 대해서 알아볼까요?^^ (0) | 2021.01.02 |
2.Spring, 스프링 프레임워크의 모듈은 어떤것이 있을까? (0) | 2021.01.01 |
1.Spring, 도대체 무엇이 스프링 프레임워크일까? ^^ .. 한번 간단하게 알아보자! (0) | 2021.01.01 |
0.Spring, 도대체 무엇이 스프링 프레임워크일까? ^^ .. 한번 간단하게 알아보자! (0) | 2020.09.28 |