Study/Spring

[Spring Framework] 데이터 액세스 층

AC 2019. 8. 4. 00:41


스프링 JDBC

개발자가 JDBC를 직접 다루는 것은 영속화 조직을 복잡하게 만든다는 생각에서 스프링은 JDBC를 추상화하는 프레임워크인 스프링 JDBC를 제공하고 있다. 

스프링 JDBC는 SQL문을 이용하는 형태의 데이터 액세스 프레임워크이다. 스프링 JDBC의 이용법은 'SELECT 문'과 'SELECT한 결과와 엔티티 클래스의 매핑'을 기술하기만 하면 되므로 SQL 문에 익숙한 개발자라면 간단히 사용할 수 있다. 

최근에는 XML을 이용해 오브젝트와 테이블을 매핑하는 프레임워크도 많지만 SQL문에 익숙한 개발자나 참조가 주가 되는 앱 애플리케이션에서는 스프링 JDBC의 이용도 권장하고 있다.


스프링 데이터

RDB(릴레이션 데이터베이스)와 NoSQL 등의 다른 데이터 스토어에 액세스의 통일화와 단순화를 목적으로 한 프로덕트이다. RDB에 대해서는 JPA, NoSQL에 대해서는 도큐먼트 형 DB인 MongoDB, 그래픽 DB인 Neo4j 등이 액세스 할 수 있다. 단, 다른 데이터 액세스의 통일화에 대해서는 아직 완전하게 대응됐다고 보기는 힘들고, JPA, MongoDB, Neo4j를 각각의 프로덕트로 이해하는 것이 좋다.

※ 현재 지원하는 메인 모듈은 Gemfire, JPA, KeyValue, LDAP, MongoDB, REST, Redis, Apache Cassandra, Apache Solr 등이 있으며 더 상세한 리스트는 웹 페이지(http://projects,spring,io/spring-data/)에서 확인이 가능하다.

 

 

스프링 ORM 인티그레이션 기능

MVC 프레임워크와 마찬가지로 데이터 액세스 층에서 스프링 JDBC를 반드시 이용할 필요는 없다. 

 

스프링이 제공하는 ORM 인티그레이션 기능을 이용하면 하이버네이트 등을 간단히 이용할 수 있는 것도 스프링의 장점 중 하나이다. 스프링의 ORM 인티그레이션 기능을 이용하면 각각의 프레임워크를 단독으로 이용하는 것보다 간단하게 서비스를 만들 수 있다.

하지만 ORM 프레임워크에도 새로운 프레임워크에 대한 인티그레이션 기능이 있어, 스프링의 ORM 인티그레이션 기능의 중요성과 유용성은 예전보다 떨어졌다. 다만 오래된 프레임워크나 하이버네이트를 이용하는 경우라면 여전히 중요하고 유용한 기능이다.

LIST