김영한님 인강듣고/스프링 DB
스프링 트랜잭션 시작
doriver
2024. 10. 26. 14:48
역할에 따라 3가지 계층

| 프레젠테이션 계층 | 서비스 계층 | 데이터 접근 계층 |
| UI와 관련된 처리 담당 웹 요청과 응답 |
비즈니스 로직을 담당 |
실제 데이터베이스에 접근하는 코드 |
| 서블릿과 HTTP 같은 웹 기술 , 스프링 MVC |
가급적 특정 기술에 의존하지 않고 , 순수 자바 코드로 작성 |
JDBC, JPA, File, Redis, Mongo .. |
이렇게 계층을 나눈 이유도 서비스 계층을 최대한 순수하게 유지하기 위한 목적이 크다.
기술에 종속적인 부분은 프레젠테이션 계층, 데이터 접근 계층에서 가지고 간다.
향후 구현 기술이 변경될 때 변경의 영향 범위를 최소화 할 수 있다
JPA는 트랜잭션을 사용하는 코드가 JDBC와 다르다


SQLException 은 JDBC 전용 기술이다.
향후 JPA나 다른 데이터 접근 기술을 사용하면, 그에 맞는 다른 예외로 변경해야 하고, 결국 서비스 코드도 수정해야 한다
스프링 트랜잭션 추상화의 핵심은 PlatformTransactionManager 인터페이스이다.

