Computer Science/테크톡 정리

[CS 정리] 트랜잭션 정리

미스터로즈 2021. 9. 14. 09:29

우아한 테크톡 관련된 유튜브 강의 정리 내용입니다.

정확한 내용을 학습하고 싶으면 강의 링크를 참고하시면 됩니다.


트랜잭션이란?

여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것

 

  •  거래가 일어날 때 실행되는 쿼리
    • UPDATE 문 : 구매자 계좌에서 10000원 빼기
    • UPDATE 문 : 판매자 계좌에 10000원 더하기

 

하지만 중간에 오류가 나면 10000원이 빠졌지만 판매자의 계좌에는 10000원이 들어오지 않을수도 있다.

 

따라서 여러 개의 쿼리를 하나의 트랜잭션으로 묶고,

트랜잭션은 커밋 혹은 롤백을 수행합니다.

 


트랜잭션의 성질

트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질

 

  • 원자성
    • 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 합니다.
  • 일관성
    • 트랜잭션 작업처리결과는 항상 일관성 있어야 합니다. 다시 말해 항상 일관된 상태로 유지되어야 합니다.
  • 독립성
    • 둘 이상의 트랜잭션이 동시 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없습니다.
  • 지속성
    • 트랜잭션이 성공적으로 완료되었으면 결과는 영구히 반영되어야 합니다.

트랜잭션 격리 수준

동시에 DB에 접근할 때 그 접근을 어떻게 제어할지에 대한 설정

 

 

  • READ-UNCOMMITTED
    • 커밋 전의 트랜잭션의 데이터 변경 내용을 다른 트랜잭션이 읽는 것을 허용합니다.
  • READ-COMMITTED
    • 커밋이 완료된 트랜잭션의 변경사항만 다른 트랜잭션에서 조회 가능합니다.
  • REPEATABLE-READ
    • 트랜잭션 범위 내에서 조회한 내용이 항상 동일함을 보장
  • SERIALIZABLE
    • 한 트랜잭션에서 사용하는 데이터를 다른 트랜잭션에서 접근 불가

 


트랜잭션 전파 타입

'Computer Science > 테크톡 정리' 카테고리의 다른 글

[CS 정리] Redis 정리  (0) 2021.09.23
[CS 정리] 프레임워크, 라이브러리, API 정리  (0) 2021.09.09
[CS정리] RESTful 정리  (0) 2021.09.08
[CS 정리] JDBC, SQLMAPPER, ORM  (0) 2021.08.24
[CS 정리] OSI 7 Layer  (0) 2021.08.23