트랜잭션은 무엇일까?

2025. 5. 13. 10:29·탐구하기

트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 말하며, 여러 작업이 하나의 작업처럼 실행되어야 할 때 사용됩니다. 즉, 모두 성공하거나 모두 실패해야 하는 일련의 작업들을 의미.


✅ 트랜잭션의 대표 특징: ACID

트랜잭션은 ACID라는 4가지 주요 특성을 가집니다.

특징 설명

Atomicity (원자성) 트랜잭션의 작업들이 모두 수행되거나 전혀 수행되지 않아야 함. 중간에 실패하면 전체 작업이 취소됨.
Consistency (일관성) 트랜잭션이 성공적으로 수행되면 데이터베이스는 항상 일관된 상태를 유지해야 함.
Isolation (격리성) 동시에 여러 트랜잭션이 실행되더라도 각각이 독립적으로 실행되어야 하며, 서로 간섭하지 않아야 함.
Durability (지속성) 트랜잭션이 완료되면 그 결과는 영구적으로 반영되어야 함. 시스템이 고장 나더라도 결과는 유지됨.

💡 예시로 이해하기

은행 계좌에서 A가 B에게 10만원을 송금한다고 가정하면 다음과 같은 작업들이 필요합니다:

  1. A 계좌에서 10만원 출금
  2. B 계좌에 10만원 입금

→ 이 두 작업은 트랜잭션으로 묶여야 합니다.
→ 한쪽만 처리되고 중간에 실패하면 데이터가 꼬이게 되므로, 둘 다 성공하거나 둘 다 롤백되어야 합니다.


✅ 데이터베이스에서의 의미로 확장

DB에서 이 단어를 쓴 이유는 다음과 같습니다:

현실 세계의 거래(거래소, 은행 등) DB의 트랜잭션

돈을 보내면 반드시 받는 사람이 있어야 함 출금과 입금이 하나의 논리적 작업
거래 도중 문제가 생기면 거래를 취소 작업 도중 실패 시 롤백
거래는 완료되면 변경 불가 커밋되면 지속성 보장

→ 즉, DB에서도 하나의 “거래(일련의 작업)”가 완전하게 끝나야만 의미가 있으므로 Transaction이라는 용어를 사용하는 것입니다.


✅ 왜 따로 강조해서 다루는가?

트랜잭션을 별도로 강조하고 분리해서 다루는 이유는 다음과 같습니다:

  1. 데이터 무결성을 보장하기 위해
  2. 여러 작업을 하나로 묶어서 다루어야 하는 상황이 자주 발생하기 때문
  3. 개발자가 명확히 "여기서부터 여기까지가 하나의 트랜잭션이다" 라고 선언할 수 있게 하기 위해

🧩 정리

  • 트랜잭션은 하나의 논리적 작업 단위
  • 실패 시 전체 작업을 되돌리는(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
'탐구하기' 카테고리의 다른 글
  • HTTP는 무엇일까??
  • MVC패턴은 무엇일까?
  • RDBMS란??
  • 데이터베이스에서 다양한 유형의 관계
ayinyun
ayinyun
ayinyun 님의 블로그 입니다.
  • ayinyun
    ayinyun 님의 블로그
    ayinyun
  • 전체
    오늘
    어제
    • 분류 전체보기 (75)
      • SQL 개발 공부 (8)
      • JAVA 개발 공부 (4)
      • JavaScript(JS) (1)
      • React (1)
      • 탐구하기 (38)
      • KPT회고록 (14)
      • SpringBoot (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
ayinyun
트랜잭션은 무엇일까?
상단으로

티스토리툴바