오경석의 개발노트

IT 용어_트랜잭션(transaction) 본문

기타/IT 용어

IT 용어_트랜잭션(transaction)

OHSAYU 2023. 11. 3. 16:18

트랜잭션(transaction) : 쪼갤 수 없는 업무 처리의 최소 단위.

    트랜잭션은 은행 ATM이나 데이터베이스 등의 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위이다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다. 트랜잭션 처리가 정상적으로 완료된 경우 커밋(commit)을 하고, 오류가 발생할 경우 원래 상태대로 롤백(rollback)을 한다.

    트랜잭션은 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용한다. 데이터베이스 기능 중, 트랜잭션을 조작하는 기능은 데이터베이스 완정성(integrity) 유지를 확신하게 한다. 단일 트랜잭션은 데이터베이스 내에 읽거나 쓰는 여러 개 쿼리를 요구한다. 이때 중요한 것은 데이터베이스가 수행된 일부 쿼리가 남지 않는 것이다. 예를 들어, 송금을 할 때 한 계좌에서 인출되면 다른 계좌에서 입금이 확인되는 것이 중요하다. 또한 트랜잭션은 서로 간섭하지 않아야 한다. 만약 하나가 실패하면, 데이터베이스 시스템은 전체 트랜잭션 또는 실패한 쿼리를 롤백 한다. 

 

데이터베이스의 트랜잭션이 안전하게 수행되기 위한 ACID 조건

 - Atomicity(원자성) : 하나의 트랜잭션이 더 이상 작게 쪼갤 수 없는 최소한의 업무 단위. 트랜잭션이 데이터베이스에 모두 반영되던지, 아니면 전혀 반영되지 않아야 하며 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장. All or Nothing. 즉, 100개 명령어로 구성된 트랜잭션 중 99개 완료 1개 실패가 된다면 이는 무조건 실패로 간주하여 트랜잭션 시작 전 상태로 돌려야 한다.

 - Consistency(일관성) : 트랜잭션이 완료된 결괏값이 일관적인 DB 상태를 유지하는 것. 시스템이 가지고 있는 고정요소는수행 전과 후의 상태가 같아야 하며 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것으로 트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는 것이 아니라, 처음 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행된다. 이렇게 함으로써 각 사용자가 일관성 있는 데이터를 볼 수 있다. 

 - Isolation(고립성) : 하나의 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것. 즉, 트랜잭션 끼리는 서로를 간섭할 수 없다. 트랜잭션이 실행하는 도중에 변경한 데이터는 이 트랜잭션이 완료될 때까지 다른 트랜잭션이 참조하지 못하게 하는 특성이다.

 - Durability(지속성) : 트랜잭션이 정상적으로 종료된 다음에는 영구적으로 데이터베이스에 작업의 결과가 저장되어야 한다. 

 

출처 : http://wiki.hash.kr/index.php/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98

 

트랜잭션 - 해시넷

트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 거래내역이라고도 한다. '트렌젝션'이 아니라 '트랜잭션'이 올바른 표기법이다. 영어로 간략히 Tx라고 표기하기도 한다.

wiki.hash.kr

 

'기타 > IT 용어' 카테고리의 다른 글

IT 용어_JSON  (5) 2023.11.20
IT 용어_정합성(Consistency)  (0) 2023.11.05
IT 용어_선택도(Selectivity)  (0) 2023.11.03
IT 용어_카디널리티(Cardinality)  (1) 2023.11.02
IT 용어_튜플(tuple), 레코드(record), 행(row)  (0) 2023.11.02
Comments