반응형
데이터베이스를 설계하거나 다룰 때 반드시 알아야 할 개념이 바로 트랜잭션과 락이다.
두 개념은 혼동되기 쉬우나, 각각의 역할과 목적은 명확히 다르다.
✅ 트랜잭션(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
반응형
'IT개발 > Tech Notes' 카테고리의 다른 글
💡 컴퓨터 속도를 좌우하는 핵심! 캐시 메모리(Cache Memory)란? (1) | 2025.05.04 |
---|---|
정규화란? 제1정규형부터 제3정규형까지 쉽게 정리 (0) | 2025.05.01 |
ACID란? 트랜잭션의 4가지 특성 완벽 이해 (0) | 2025.05.01 |
관계 대수와 관계 해석의 차이, SQL과 무슨 관련이 있을까? (0) | 2025.05.01 |
Paging vs Segmentation – 메모리 관리 기법 완전 비교 (0) | 2025.04.30 |
댓글