트랜잭션

랏 뜨·2024년 12월 7일

🔎 Overview


  데이터베이스를 공부하는 사람들은 정말 지겹도록 들어본 단어가 있을 것이다. 트랜잭션이 그 주인공이다.

  이 트랜잭션은 데이터베이스에서 너무나도 중요한 요소이다. CS나 정보처리기사 자격증 취득을 위해서 공부할 때도 느끼겠지만, 트랜잭션을 얼마나 잘 처리해주는가에 따라서 데이터의 신뢰성을 매우매우 크게 올려줄 수 있다.

  트랜잭션은 그만큼 데이터베이스에 있어 중요한 개념이기 때문에, 반드시 짚고 넘어가도록 하자.


🤔 Transaction ?

  • 데이터베이스 에 일어나는 일련의 작업들의 논리적 단위
  • 두 가지 결과를 보장
    • 트랜잭션 내의 모든 작업은 반드시 모두 성공
    • 트랜잭션 내에서 실패하는 작업이 하나라도 존재한다면, 이전까지의 작업들도 모두 취소
  • 계좌 시스템을 예를 들 수 있음
  • A 의 계좌 -> B 의 계좌로 1만원을 송금 한다고 가정
    • A 의 계좌에서는 1만원 이 빠져나가야 함
    • B 의 계좌에는 1만원 이 들어와야 함
  • 상기 두 가지의 작업은 반드시 둘 다 성공해야 안전함
    • A 의 계좌에서는 1만원 이 빠져나감
    • B 의 계좌로 전달되는 과정에서 오류가 발생해서 B 의 계좌에는 1만원 이 추가되지 않음
    • 하지만 A 의 계좌에서는 1만원 이 이미 빠져나갔으므로, A 만 손해를 봄
  • 이렇듯, 반드시 함께 처리되어야 하는 작업들을 하나의 흐름으로 묶어서 처리할 수 있는 것이 바로 트랜잭션
  • 데이터베이스 의 무결성과 신뢰성을 보장하기 위한 핵심적인 역할
  • 이를 통해 시스템은 안전하고 예측 가능한 상태를 유지할 수 있음

💡 ACID

  • 트랜잭션의 가장 중요한 4가지 특징

1. 원자성 (Atomicity)

  • 트랜잭션 에 포함된 작업들은 모두 성공하거나 하나라도 실패하면 전부 취소 되는 특성
  • ex) 계좌 이체에서 돈을 보내는 작업과 돈을 받는 작업은 한꺼번에 이루어져야 함

2. 일관성 (Consistency)

  • 트랜잭션 이 완료되면 데이터는 항상 일관된 상태로 유지되어야 함
  • ex) 계좌 이체가 발생하더라도, 두 계좌의 총 금액은 항상 일정해야 함

3. 고립성 (Isolation)

  • 여러 트랜잭션 이 동시에 실행되더라도, 서로 간섭하지 않는 독립적인 상태여야 함
  • ex) 동시에 여러 사용자가 은행 앱을 사용하더라도 지장이 없어야 함

4. 지속성 (Durability)

  • 트랜잭션 이 성공적으로 완료된 후에는, 시스템 오류나 정전이 발생하는 등 어떤 상황에서도 결과가 영구적으로 저장되어야 함
  • ex) 이체 후에 서버 시스템이 꺼지더라도 이체 기록은 남아있어야 함

🎢 트랜잭션의 실행 과정

1. 시작

  • 트랜잭션 작업을 시작

2. 작업 수행

  • 트랜잭션에 포함된 여러 작업들 실행

3. 커밋

  • 모든 작업이 성공적으로 완료되면 데이터를 저장

4. 롤백

  • 작업 도중 하나라도 문제가 발생하면 모든 작업을 취소, 원래 상태로 되돌림

참고) OpenAI. (2024).ChatGPT(4o)[Large language model].https://chatgpt.com/

profile
기록

0개의 댓글