본문 바로가기
IT개발/Tech Notes

트랜잭션과 락(Lock), 개념부터 차이까지 한 번에 정리

by 시간기억자 2025. 5. 2.
반응형

데이터베이스를 설계하거나 다룰 때 반드시 알아야 할 개념이 바로 트랜잭션이다.
두 개념은 혼동되기 쉬우나, 각각의 역할과 목적은 명확히 다르다.


트랜잭션(Transaction)이란?

  • 데이터베이스에서 하나의 논리적 작업 단위
  • 모두 성공하거나, 모두 실패해야 한다 (All or Nothing)
  • 4가지 특성 ACID를 만족해야 한다
    • Atomicity(원자성): 전부 성공하거나 전부 실패
    • Consistency(일관성): 작업 전후 데이터의 일관성 유지
    • Isolation(고립성): 동시에 실행돼도 각 트랜잭션은 독립
    • Durability(지속성): 완료된 트랜잭션은 영구 반영

https://time-memorizer.tistory.com/272

 

ACID란? 트랜잭션의 4가지 특성 완벽 이해

데이터베이스에서 트랜잭션(Transaction)은 하나의 논리적 작업 단위를 의미한다.예를 들어, 은행 계좌 이체처럼 ‘출금 + 입금’이 동시에 일어나야 하는 작업이 트랜잭션이다.이 트랜잭션이 안전

time-memorizer.tistory.com

 


락(Lock)이란?

  • 동시에 여러 트랜잭션이 같은 데이터에 접근하는 것을 제어하는 기술
  • 충돌 방지를 위한 동시성 제어(concurrency control) 수단

종류:

  • 공유락(Shared Lock): 읽기 가능, 쓰기는 불가
  • 배타락(Exclusive Lock): 읽기, 쓰기 모두 제한
  • 낙관적 락: 충돌이 없을 거라 가정, 나중에 확인
  • 비관적 락: 충돌을 피하려 미리 잠금

예시로 이해하기

트랜잭션 예시 (Java 기준)

try {
  connection.setAutoCommit(false);
  updateUserBalance();
  insertTransactionHistory();
  connection.commit();
} catch (Exception e) {
  connection.rollback();
}

락 적용 예시

  • 트랜잭션 내에서 특정 행(Row)에 배타락이 걸려 있으면,
    다른 사용자는 해당 데이터에 접근하지 못하고 대기 상태가 된다.

트랜잭션 vs 락, 정리

구분 트랜잭션
목적 논리적 작업 단위 유지 동시성 제어 및 충돌 방지
개념 여러 쿼리를 하나로 묶는 단위 데이터 접근 제한 수단
위치 DBMS 로직 상에서 처리 DB 내부 또는 애플리케이션에서 적용
대표 기술 COMMIT, ROLLBACK Shared Lock, Exclusive Lock
 

트랜잭션은 신뢰성 있고 정확한 데이터 처리를 위한 핵심 개념이며,
락은 그런 트랜잭션을 안정적으로 실행하기 위한 도구이다.
두 개념을 연결해서 이해하면 실무나 시험에서도 훨씬 수월해진다.


📌 매일 간단히 IT 관련 개념을 익히고 싶다면 구독하세요!👇👇👇

http://www.youtube.com/@itbite_daily

 

오늘의 IT한입

👋 하루 한 입, 쉽게 배우는 IT & 개발 개념! 프로그래밍, 데이터베이스, 운영체제, 네트워크, 보안, 코딩테스트까지! 취업 준비부터 실무 감각까지 매일 짧고 강력하게 정리해드립니다. 📍 매일

www.youtube.com

 

반응형

댓글