dirty read 2

트랜잭션(Transaction) — ACID, 격리 수준, MVCC까지

Java/Spring 백엔드 면접 준비 학습 노트1. 트랜잭션이란?트랜잭션은 더 이상 쪼갤 수 없는 작업의 최소 단위다. 여러 쿼리를 하나의 묶음으로 처리해 데이터 정합성을 보장하는 핵심 개념이다.왜 필요한가? — 계좌이체 예시원이가 민수에게 10만원을 이체할 때 두 쿼리가 필요하다.UPDATE accounts SET balance = balance - 100000 WHERE user = '원'; -- 1단계UPDATE accounts SET balance = balance + 100000 WHERE user = '민수'; -- 2단계1단계 실행 후 서버가 죽으면 원이 통장은 -10만원이지만 민수 통장은 그대로 — 돈이 사라진다.두 쿼리를 하나의 트랜잭션으로 묶어야 둘 다 성공하거나, 둘 다 실패하도..

Computer Science 2026.06.12

트랜잭션 격리 (Transaction Isolation)

트랜잭션 격리(Transaction Isolation)란 여러 트랜잭션이 동시에 실행될 때, 하나의 트랜잭션이 다른 트랜잭션의 데이터 변경 연산에 영향을 받지 않도록 고립시키는 정도를 의미합니다. 이는 데이터베이스의 무결성을 유지하면서도 최대한의 성능(동시성)을 확보하기 위해 조절됩니다.트랜잭션 격리 수준 4단계격리 수준이 높을 수록, 일관성은 보장되지만 동시성 성능은 떨어집니다. (일관성과 동시성 사이의 트레이드오프 존재)READ UNCOMMITTED (Level 0)커밋되지 않은 트랜잭션의 변경 내용을 다른 트랜잭션이 읽는 것을 허용데이터 일관성이 깨질 위험이 높음문제점: Dirty Read 발생 가능READ COMMITTED (Level 1)트랜잭션이 커밋 완료된 데이터만 다른 트랜잭션에서 조회 가..

728x90