더북(TheBook)

1.1.4.5 스프링에서의 데이터 액세스

데이터 액세스와 퍼시스턴스(persistence)는 자바 세상에서 가장 많이 논의하는 주제입니다. 스프링은 이러한 다양한 데이터 액세스 도구와 훌륭하게 통합됩니다. 또한, 스프링은 표준 JDBC API를 기반으로 단순화한 래퍼(wrapper) API를 제공해 많은 프로젝트에서 표준 JDBC를 유연하게 사용할 수 있습니다. 스프링의 데이터 액세스 모듈은 JDBC, 하이버네이트, JDO, JPA를 기본적으로 제공합니다.

Note 스프링 프레임워크 4.0 버전부터 아이바티스(iBATIS) 지원이 중단됐습니다. MyBatis-Spring 프로젝트는 아이바티스 다음 버전인 마이바티스와 스프링의 연동 기능을 제공하며 http://mybatis.github.io/spring/에서 자세한 정보를 찾을 수 있습니다.

 

하지만 지난 몇 년 동안 인터넷과 클라우드 컴퓨팅의 폭발적인 성장으로 인해 관계형 데이터베이스와는 다른 “특수 목적용” 데이터베이스가 많이 개발됐습니다. 예를 들어 대용량의 데이터, 그래프 데이터베이스, 도큐먼트(document) 데이터베이스를 처리하기 위해 키와 값의 쌍을 기본 구조로 사용하는 데이터베이스(보통 NoSQL이라고 부름)가 있습니다. 개발자가 이러한 데이터베이스를 사용할 수 있게 지원하면서 스프링 데이터 액세스 모듈을 더 복잡하게 만들지 않도록 스프링 데이터(Spring Data)10라는 별도 프로젝트가 만들어졌습니다. 이 프로젝트는 데이터베이스별 접근 지원 기능에 따라 여러 범주로 나뉘어집니다.

Note 스프링의 비관계형 데이터베이스에 대한 지원은 이 책에서 다루지 않습니다. 이 주제에 관심이 있다면 앞에서 언급한 스프링 데이터 프로젝트를 살펴보기 바랍니다. 지원하는 비관계형 데이터베이스와 관련된 내용과 해당 데이터베이스의 홈페이지 링크를 스프링 데이터 프로젝트의 웹 페이지에서 확인할 수 있습니다.

 

스프링의 JDBC 지원 기능으로 복잡한 애플리케이션에서도 JDBC를 사용해 쉽게 애플리케이션을 개발할 수 있습니다. 하이버네이트, JDO, JPA에 대한 지원 기능은 이미 단순한 API를 더욱 단순하게 만들어 개발자의 부담을 덜어줍니다. 스프링 API를 사용해 데이터에 접근하면 어떤 도구를 쓰더라도 스프링의 훌륭한 트랜잭션 기능들을 사용할 수 있습니다. 이에 대한 자세한 내용은 9장에서 살펴봅니다.

스프링의 가장 훌륭한 기능 중 하나는 애플리케이션의 데이터 액세스 기술을 쉽게 혼용해 사용할 수 있다는 것입니다. 예를 들어 오라클을 사용하는 애플리케이션에서 데이터 액세스 로직의 대부분에 하이버네이트를 사용할 수 있습니다. 하지만 오라클 고유의 기능을 활용하고 싶을 때는 스프링의 JDBC API를 사용해 데이터 액세스 레이어에 해당 부분을 간단하게 구현할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.