새소식

프레임워크/Spring

Spring Data - 개요

  • -

Spring Data

 

Spring Data는 데이터베이스의 특수성을 그대로 유지하면서 데이터 접근를 위한 Spring 기반 프로그래밍 모델을 제공하는 프로젝트 입니다.

 

스프링 프레임워크 사용자가 데이터 액세스 기술, 관계형 및 비관계형 데이터베이스, map-reduce 프레임워크, 클라우드 기반 데이터 서비스를 쉽게 사용할 수 있도록 도와줍니다.

 

특징

 

Spring Data는 다음과 같은 특징을 가지고 있습니다.

 

  • 강력한 repository 및 custom obeject-mapping 추상화
  • repository method name으로 동적 쿼리 만들기
  • 기본 속성을 제공하는 Implementation domain 기본 클래스
  • 생성되거나 마지막 변경이 언제인지 알 수 있는 투명한 auditing 지원
  • custom repository 코드 통합 가능성
  • JavaConfig 및 custom XML namespaces를 통한 손쉬운 Spring 통합
  • Spring MVC 컨트롤러와의 향상된 통합
  • cross-store persistence를 위한 실험적 지원

 

위의 말들이 잘 이해가 가지 않을 수도 있는데, 차차 세부 내용들을 알아가면서 이해가 갈테니 대충 이런게 있다라고 알아두면 됩니다.

 

모듈 종류

 

여러 모듈이 있지만, 본인이 사용하는 환경에 맞춰 필요한 모듈을 사용하면 됩니다.

 

Spring Data OOO에서 OOO 이 부분에 들어가는 명칭들의 기술을 스프링에서 사용할 수 있도록 편리하게 구성해놓은 것을 의미합니다.

 

모듈에 대한 자세한 정보는 필요 시 따로 정리해서 올리도록 하겠습니다. 필요하다면 메뉴얼을 참고하시면 됩니다.

 

메인 모듈

 

  • Spring Data Commons - Core Spring concepts underpinning every Spring Data module.
  • Spring Data JDBC - Spring Data repository support for JDBC.
  • Spring Data JDBC Ext - Support for database specific extensions to standard JDBC including support for Oracle RAC fast connection failover, AQ JMS support and support for using advanced data types.
  • Spring Data JPA - Spring Data repository support for JPA.
  • Spring Data KeyValue - Map based repositories and SPIs to easily build a Spring Data module for key-value stores.
  • Spring Data LDAP - Spring Data repository support for Spring LDAP.
  • Spring Data MongoDB - Spring based, object-document support and repositories for MongoDB.
  • Spring Data Redis - Easy configuration and access to Redis from Spring applications.
  • Spring Data REST - Exports Spring Data repositories as hypermedia-driven RESTful resources.
  • Spring Data for Apache Cassandra - Easy configuration and access to Apache Cassandra or large scale, highly available, data oriented Spring applications.
  • Spring Data for Apache Geode - Easy configuration and access to Apache Geode for highly consistent, low latency, data oriented Spring applications.
  • Spring Data for VMware Tanzu GemFire - Easy configuration and access to Pivotal GemFire for your highly consistent, low latency/high through-put, data-oriented Spring applications.

 

커뮤니티 모듈

 

  • Spring Data Aerospike - Spring Data module for Aerospike.
  • Spring Data ArangoDB - Spring Data module for ArangoDB.
  • Spring Data Couchbase - Spring Data module for Couchbase.
  • Spring Data Azure Cosmos DB - Spring Data module for Microsoft Azure Cosmos DB.
  • Spring Data Cloud Datastore - Spring Data module for Google Datastore.
  • Spring Data Cloud Spanner - Spring Data module for Google Spanner.
  • Spring Data DynamoDB - Spring Data module for DynamoDB.
  • Spring Data Elasticsearch - Spring Data module for Elasticsearch.
  • Spring Data Hazelcast - Provides Spring Data repository support for Hazelcast.
  • Spring Data Jest - Spring Data module for Elasticsearch based on the Jest REST client.
  • Spring Data Neo4j - Spring-based, object-graph support and repositories for Neo4j.
  • Oracle NoSQL Database SDK for Spring Data - Spring Data module for Oracle NoSQL Database and Oracle NoSQL Cloud Service.
  • Spring Data for Apache Solr - Easy configuration and access to Apache Solr for your search-oriented Spring applications.
  • Spring Data Vault - Vault repositories built on top of Spring Data KeyValue.
  • Spring Data YugabyteDB - Spring Data module for YugabyteDB distributed SQL database.

 

사용시 주의점

 

버전마다 사용법이 다를 수 있고, 새로운 기능이 추가된다거나 기존 기능이 삭제된다거나, 호환성도 다를 수 있기 때문에 주의하면서 사용해야합니다.

 

보통 Release Train이라는 단위로 묶여 관리가 되는데, 그 Release Train을 잘알아보고 결정해야합니다.

 

현재 Spring Data에서 관리되고 있는 Release Train에 속한 모듈들은 다음과 같습니다. 

 

  • Spring Data Commons
  • Spring Data JPA
  • Spring Data KeyValue
  • Spring Data LDAP
  • Spring Data MongoDB
  • Spring Data Redis
  • Spring Data REST
  • Spring Data for Apache Cassandra
  • Spring Data for Apache Geode
  • Spring Data for Apache Solr
  • Spring Data for Pivotal GemFire
  • Spring Data Couchbase (community module)
  • Spring Data Elasticsearch (community module)
  • Spring Data Neo4j (community module)

 

'프레임워크 > Spring' 카테고리의 다른 글

Spring Data JDBC - JdbcTemplate  (0) 2023.05.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.