본문 바로가기
BackEnd/Spring

[Spring] Spring DB Access의 특징

by ryuneng 2025. 1. 16.
반응형

# 목적

  • Spring의 데이터베이스 액세스에 대한 이해



📌 Spring DB Access의 특징

1. DataSource를 이용한 데이터베이스 연결 제공

  • 다양한 방식의 데이터베이스 연결을 제공하고, 이에 대한 추상화 계층을 제공함으로써 업무로직과 데이터베이스 연결방식 간의 종속성을 배제한다.


2. 다양한 데이터베이스 액세스 프레임워크와의 연동 지원

  • mybatis, JPA, hibernate 등


3. 오류에 대한 일괄된 예외 제공

  • Spring은 DataAccessException 클래스를 제공한다.
  • DataAccessException은 RuntimeException을 상속받은 Unchecked 예외다.
  • Spring은 데이터베이스별 오류코드를 조사해서 오류 코드별로 일관된 예외를 발생시킨다.
  • 오류 코드별 예외는 DataAccessException 클래스의 하위 클래스이며, 좀더 구체적인 오류코드를 보여준다.
    * try~catch 작성 불필요


4. 트랙잭션 처리를 지원하는 트랜잭션 매니저 제공

  • 다양한 방식의 데이터베이스 액세스 기술에 대한 트랜잭션 처리를 제공하고, 이에 대한 추상화 계층을 제공함으로써 업무로직과 트랜잭션 처리 방식 간의 종속성을 배제한다.
  • PlatformTransactionManager를 이용해서 트랜잭션 처리를 추상화했다.
    PlatformTransactionManager 인터페이스에는 트랜잭션 처리와 관련된 추상화된 메소드가 정의되어 있고, 각각의 데이터베이스 액세스 기술에 맞는 다양한 PlatformTransactionManager 인터페이스 구현체가 존재한다.


5. 선언적 트랜잭션 처리 지원

  • 프로그램 코드 작성 없이 선언적 방법으로 트랜잭션 처리를 지원한다.
  • 선언적 방법
    • 트랜잭션 처리가 필요한 곳에 @Transactional 어노테이션 붙이기
    @Transactional
    public class OrderService {
    
    }
    • aop 설정을 활용한 선언적 트랜잭션 처리

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-데이터베이스-액세스