김영한님 인강듣고/스프링 DB

스프링 트랜잭션 시작

doriver 2024. 10. 26. 14:48

역할에 따라 3가지 계층

프레젠테이션 계층 서비스 계층 데이터 접근 계층
UI와 관련된 처리 담당
웹 요청과 응답
비즈니스 로직을 담당

실제 데이터베이스에 접근하는 코드

서블릿과 HTTP 같은 웹 기술
, 스프링 MVC
가급적 특정 기술에 의존하지 않고
, 순수 자바 코드로 작성
JDBC, JPA, File, Redis, Mongo ..

 

이렇게 계층을 나눈 이유도 서비스 계층을 최대한 순수하게 유지하기 위한 목적이 크다. 

기술에 종속적인 부분은 프레젠테이션 계층, 데이터 접근 계층에서 가지고 간다.

향후 구현 기술이 변경될 때 변경의 영향 범위를 최소화 할 수 있다

 

JPA는 트랜잭션을 사용하는 코드가 JDBC와 다르다

 

SQLException 은 JDBC 전용 기술이다. 
향후 JPA나 다른 데이터 접근 기술을 사용하면, 그에 맞는 다른 예외로 변경해야 하고, 결국 서비스 코드도 수정해야 한다

 

 

스프링 트랜잭션 추상화의 핵심은 PlatformTransactionManager 인터페이스이다.