트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 말하며, 여러 작업이 하나의 작업처럼 실행되어야 할 때 사용됩니다. 즉, 모두 성공하거나 모두 실패해야 하는 일련의 작업들을 의미.
✅ 트랜잭션의 대표 특징: ACID
트랜잭션은 ACID라는 4가지 주요 특성을 가집니다.
특징 설명
| Atomicity (원자성) | 트랜잭션의 작업들이 모두 수행되거나 전혀 수행되지 않아야 함. 중간에 실패하면 전체 작업이 취소됨. |
| Consistency (일관성) | 트랜잭션이 성공적으로 수행되면 데이터베이스는 항상 일관된 상태를 유지해야 함. |
| Isolation (격리성) | 동시에 여러 트랜잭션이 실행되더라도 각각이 독립적으로 실행되어야 하며, 서로 간섭하지 않아야 함. |
| Durability (지속성) | 트랜잭션이 완료되면 그 결과는 영구적으로 반영되어야 함. 시스템이 고장 나더라도 결과는 유지됨. |
💡 예시로 이해하기
은행 계좌에서 A가 B에게 10만원을 송금한다고 가정하면 다음과 같은 작업들이 필요합니다:
- A 계좌에서 10만원 출금
- B 계좌에 10만원 입금
→ 이 두 작업은 트랜잭션으로 묶여야 합니다.
→ 한쪽만 처리되고 중간에 실패하면 데이터가 꼬이게 되므로, 둘 다 성공하거나 둘 다 롤백되어야 합니다.
✅ 데이터베이스에서의 의미로 확장
DB에서 이 단어를 쓴 이유는 다음과 같습니다:
현실 세계의 거래(거래소, 은행 등) DB의 트랜잭션
| 돈을 보내면 반드시 받는 사람이 있어야 함 | 출금과 입금이 하나의 논리적 작업 |
| 거래 도중 문제가 생기면 거래를 취소 | 작업 도중 실패 시 롤백 |
| 거래는 완료되면 변경 불가 | 커밋되면 지속성 보장 |
→ 즉, DB에서도 하나의 “거래(일련의 작업)”가 완전하게 끝나야만 의미가 있으므로 Transaction이라는 용어를 사용하는 것입니다.
✅ 왜 따로 강조해서 다루는가?
트랜잭션을 별도로 강조하고 분리해서 다루는 이유는 다음과 같습니다:
- 데이터 무결성을 보장하기 위해
- 여러 작업을 하나로 묶어서 다루어야 하는 상황이 자주 발생하기 때문
- 개발자가 명확히 "여기서부터 여기까지가 하나의 트랜잭션이다" 라고 선언할 수 있게 하기 위해
🧩 정리
- 트랜잭션은 하나의 논리적 작업 단위
- 실패 시 전체 작업을 되돌리는(rollback) 기능
- 데이터 무결성, 신뢰성 확보를 위해 필수
- “트랜잭션”이라는 이름은 **현실의 거래(거래는 완전하게 처리되어야 의미 있음)**를 모델링한 개념
'탐구하기' 카테고리의 다른 글
| HTTP는 무엇일까?? (0) | 2025.05.14 |
|---|---|
| MVC패턴은 무엇일까? (1) | 2025.05.13 |
| RDBMS란?? (0) | 2025.05.12 |
| 데이터베이스에서 다양한 유형의 관계 (1) | 2025.05.08 |
| JOIN이란 무엇이며, 'INNER JOIN'과 'LEFT JOIN'의 차이점 (1) | 2025.05.08 |