본문 바로가기

스프링 키워드

0108 트랜잭션 v2

https://docc.tistory.com/17

 

1110 트랜잭션

트랜잭션이란? DB에서 수행하는 작업 단위 mysql에서는 기본적으로 sql ; 한 줄이 하나의 작업 단위로 설정되어 있음 SELECT @@AUTOCOMMIT; 로 확인 1이면 설정됨 0이면 해제됨 SET AUTOCOMMIT = FALSE; AUTOCOMMIT

docc.tistory.com

 

초록색 글씨는 0108 스프링 트랜잭션 내용으로 추가

트랜잭션 특징  
원자성 (Atomicity) -트랜잭션 내의 모든 내용이 적용되거나 하나라도 안되면
모든 내용이 적용 안 되어야한다

- 트랜잭션 내의 여러 SQL이 모두 다 실행되거나, 모두 다 실행되지 않거나

-두개의 sql이 실행될 때 @Transectional 어노테이션을 달아주면 원자성 훼손을 방지할 수 있다
일관성 (Consistency) -작업 처리 결과가 항상 일관성이 있어야 한다.
트랜잭션이 진행되는 동안 DB가 변경되더라도
원래 DB에 트랜잭션 처리를 마무리 하고 변경

-데이터 손상이나 오류 때무에 테이블의 무결성을 헤치는 일이 없어야 한다
독립성 (Isolation) -어떤 트랜잭션이라도 다른 트랜잭션 연산 중간에
끼어들 수 없다.

- 여러 스레드가 동시에 읽기, 쓰기 작업을 할 떄 각각의 트랜잭션은 영향을 미치지 않아야 한다

영구성 (Durability)  -트랜잭션이 완료되면 데이터가 영구적으로 반영되어 있어야 한다.

0108 낙관적 락, 비관적 락  추가

 

낙관적 락, 비관적 락(쉬워서 자주 사용 됨)

 

 

'스프링 키워드' 카테고리의 다른 글

Hexagonal Architecture(헥사고날 아키텍쳐)  (0) 2024.01.11
JWT  (0) 2024.01.04
N+1 문제  (0) 2023.12.29
인터페이스  (0) 2023.12.26
디스패쳐 서블릿(Dispatcher Servlet)  (0) 2023.12.14