트랜잭션(transaction)

Feb 02, 2024
트랜잭션(transaction)
 

1. 트랜잭션이란?

 
트랜잭션(transaction) 이란 시스템에서 더이상 쪼갤 수 없는 일의 최소 단위를 의미한다.
 
 
notion image
 
예를 들어보자. 세 명의 클라이언트가 홈페이지에 회원가입을 동시에 시도한다.
이 세 명이 동시에 같은 아이디를 입력하게 된다면 어떻게 될까? 데이터베이스에 동시에 같은 아이디가 입력된다면 문제가 발생할 것이다.
그래서 이를 막기 위해서 한 명의 클라이언트가 서버와 통신할 때의 최소 단위를 정해 순서대로 처리가 일어나게 된다. 이게 트랜잭션이다.
 
 

2. 트랜잭션의 특징

 
트랜잭션에는 4가지 특징이 있다.
 
💡
원자성 (Atomicity), 일관성 (Consistency), 고립성(Isolation), 지속성 (Durability)
 

원자성 (Atomicity)

 
트랜잭션 내의 모든 작업이 성공하거나 실패하면 전체 트랜잭션이 성공 또는 실패해야 한다.
 

일관성 (Consistency),

 
시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

고립성 (Isolation)

 
독립성은 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미한다. 즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다.
 

지속성 (Durability)

성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
 

3. 트랜잭션 commit, rollback

 

커밋 (Commit)

트랜잭션이 성공적으로 완료되고, 모든 데이터베이스 변경 사항이 영구적으로 저장되기를 원할 때 커밋을 수행한다. 커밋을 수행하면 트랜잭션의 일관성, 지속성, 그리고 다른 트랜잭션과의 격리성이 보장된다.
 

롤백 (Rollback)

트랜잭션이 실패하거나 중단되어 원하는 결과를 얻지 못한 경우, 롤백을 수행하여 트랜잭션의 모든 변경 사항을 취소하고 이전 상태로 되돌린다. 롤백을 통해 데이터베이스는 트랜잭션 이전 상태로 복원되어 일관성을 유지하게 됩니다.
 
Share article

{CODE-RYU};