트랙잭션(Transaction)과 ACID 특성
2024. 6. 25. 22:07ㆍ내일배움캠프
728x90
반응형
트랙잭션(Transaction)이란?
여러 개 작업을 하나로 묶은 실행 유닛으로, 특정 작업으로 시작해서 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료됩니다.
예를 들어 하나의 트랜잭션 안에 속해 있는 여러 작업 중 단 하나라도 오류가 나게 되면, 이 트랜잭션에 속한 모든 작업은 실패한 것이 됩니다.
하나의 트랜잭션은 실행을 마치면 commit(완료) 되거나, 처음부터 다시 시작하는 rollback(변경취소) 됩니다.
완료가 되거나, 되지 못하는 걸로 나눠지기 때문에 트랜잭션은 미완료된 작업없이 모든 작업을 성공해야만 합니다.
그래서 트랜잭션을 작업수행의 논리적 단위라고 합니다.
- commit (커밋)
작업의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관된 상태로 완료된 것을 뜻합니다.
커밋을 수행하면 하나의 트랜잭션 과정을 종료하는 것입니다.
- rollback (롤백)
트랜잭션 처리가 비정상적으로 종료되어, 데이터베이스의 일관성이 깨질 경우, 일부가 정상 처리되어도 모든 행위를 취소시켜 해당 트랜잭션을 재시작하거나 폐기합니다.
트랜잭션의 목적
트랜잭션은 데이터베이스(DB) 서버에 여러 클라이언트가 동시에 액세스하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용합니다.
트랜잭션 특징
트랜잭션의 특징은 크게 4가지로 구분된다.
원자성 (Atomicity) | 원자성은 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것이다. 트랜잭션은 사람이 설계한 논리적인 작업 단위로서, 일처리는 작업단위 별로 이루어 져야 사람이 다루는데 무리가 없다. 만약 트랜잭션 단위로 데이터가 처리되지 않는다면, 설계한 사람은 데이터 처리 시스템을 이해하기 힘들 뿐만 아니라, 오작동 했을시 원인을 찾기가 매우 힘들어질것이다. |
일관성 (Consistency) | 일관성은 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것이다. 트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라, 처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다. 이렇게 함으로써 각 사용자는 일관성 있는 데이터를 볼 수 있는 것이다. |
독립성 (Isolation) | 독립성은 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 점을 가리킨다. 하나의 특정 트랜잭션이 완료될때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다. |
영구성 (Durability) | 지속성은 트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 한다는 점이다. |
면접 질문 예상
트랜잭션이란 무엇인지 설명해주세요.
- 트랜잭션은 작업의 완전성을 보장해줍니다.
- 즉, 작업들을 모두 처리하거나 처리하지 못할 경우 이전 상태로 복구하여 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능입니다.
- 하나의 트랜잭션은 Commit(작업완료)되거나 Rollback(취소)됩니다.
트랜잭션의 특성(ACID)에 대해 설명해주세요.
- 1. 원자성(Atomicity) 작업이 모두 반영되던지 아니면 전혀 반영되지 않아야 한다.
- 2. 일관성(Consistency) 실행이 완료되면 언제나 일관성 있는 상태를 유지해야 한다.
- 3. 독립성(Isolation) 둘 이상 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없다.
- 4. 영속성(Durability) 완료된 결과는 영구적으로 반영되어야 한다.
728x90
반응형
'내일배움캠프' 카테고리의 다른 글
Bubble 사용 (0) | 2024.07.19 |
---|---|
[내일배움캠프] NestJS 심화 프로젝트 Trello 회고록 (0) | 2024.07.18 |
Session vs JWT에 차이 (0) | 2024.06.25 |
[내일배움캠프] 모의 면접 후기 (0) | 2024.06.25 |
[내일배움캠프] 백오피스 프로젝트 지훈이의 타코야키 회고록 (0) | 2024.06.21 |