본문 바로가기

트랜잭션3

[DataBase] 스프링 트랜잭션 이해 트랜잭션(Transaction) 이란? · 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. · 스프링은 PlatformTransactionManager라는 인터페이스를 통해 트랜잭션을 추상화한다. PlatformTransactionManager 인터페이스 package org.springframework.transaction; public interface PlatformTransactionManager extends TransactionManager { TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException; void commit(Transaction.. 2023. 10. 6.
[DataBase] 트랜잭션 (Transaction)2 애플리케이션 구조 애플리케이션은 3가지 계층으로 나눌 수 있다. Controller, Service, Repository 프레젠테이션 계층 (Controller) - UI와 관련된 처리 담당 - 웹 요청과 응답 - 사용자 요청을 검증 - 사용 기술: Servlet, HTTP 같은 웹 기술, 스프링 MVC 서비스 계층 (Service) - 비즈니스 로직 담당 - 사용 기술: 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 데이터 접근 계층(Repository) - 실제 데이터베이스에 접근하는 코드 - 사용 기술: JDBC, JPA, File, Redis, Mongo ... 이 중 가장 중요한 곳은 서비스 계층이다. 서비스 계층은 시간이 흘러 UI(웹)와 관련된 부분이 변하고, 데이터 저장 기술이 다른 .. 2023. 9. 19.
[DataBase] 트랜잭션 (Transaction) 트랜잭션 (Transaction)이란? 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 커밋(Commit): 모든 작업이 성공해서 데이터베이스에 정상 반영하는 것 롤백(Rollback): 작업 중 하나라도 실패해서 거래 이전으로 되돌리는 것 트랜잭션 ACID 원자성(Atomicity) 트랜잭션 내에서 실행한 작업들은 하나의 작업인 것 처럼 모두 성공하거나 모두 실패 일관성(Consistency) 모든 트랜잭션은 일관성 있는 데이터베이스 상태 유지, 무결성 제약 조건을 항상 만족 격리성(Isolation) 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리, 동시에 같은 데이터 수정 X 지속성(Durability) 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 함.. 2023. 9. 18.