본문 바로가기
Learn IT Knowledge/Computer Science

[ 전공 지식 ] Transaction

by ${코딩몬} 2018. 1. 3.


Evernote 전공 정리 노트 불러오기



Computer Science

Transaction



Transaction
  • 트랜잭션(transaction)은 ATM, 데이터베이스 등의 시스템에서 사용되는 쪼갤 수 없는 업무 처리의 단위이다.
  • 영어 낱말 transction은 거래를 뜻한다.
    • 예를 들어 돈을 줬는데 물건을 받지 못한다면, 그 거래는 이루어지지 못하고 원상태로 복구되어야 한다.
    • 이와 같이 쪼갤 수 없는 하나의 처리 행위를 원자적 행위라고 한다.
    • 여기서 쪼갤 수 없다는 말의 의미는 실제로 쪼갤 수 없다기 보다는 만일 쪼개질 경우 시스템에 심각한 오류를 초래할 수 있다는 것이다.
    • 이러한 개념의 기능을 ATM 또는 데이터베이스 등의 시스템에서 제공하는 것이 바로 트랜젝션이다.
  • 트랜잭션은 사용자가 시스템에 요구를 시작하여 시스템 내의 처리, 시스템에서 사용자에게 응답하는 모든 처리를 포함한다.
    • 이러한 트랜잭션이 충족해야 하는 기술적인 요건은 ACID가 있다.
  • ACID는 데이터베이스 트랜젝션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다.
    • Atomicity(원자성)
      • 트랜젝션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
      • 예릉들어, 자금 이체는 성공할 수도  실패할 수도 있지만 보내는 쪽에서 돈을 빼오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다.
      • 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.
    • Consistency(일관성)
      • 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
      • 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
    • Isolation(고립성)
      • 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
      • 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
      • 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다.
      • 공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다.
      • 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조적이다.
    • Durability(지속성)
      • 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.
      • 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다.
      • 전형적으로 모든 트랜잭션은 로그로 남고 시스템장애 발생 전 상태로 되돌릴 수있다.
      • 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.


'Learn IT Knowledge > Computer Science' 카테고리의 다른 글

[ 전공 지식 ] Thymeleaf  (0) 2018.01.03
[ 전공 지식 ] Spring Framework  (0) 2018.01.03
[ 전공 지식 ] Type-safe  (0) 2018.01.03
[ 전공 지식 ] Spring Annotation  (0) 2018.01.03
[ 전공 지식 ] XML  (0) 2018.01.03