DB 2

DB 격리 수준(Isolation Level): Read Committed

DB 격리 수준(Isolation Level)은 크게 4가지로 나뉩니다. 오늘은 그중 하나인 "Read Committed"에 대해서 알아볼까 합니다. Multithreading많은 데이터베이스가 멀티스레딩 기반으로 이루어져있습니다. 아마 2026년 기준으로 PostgreSQL은 싱글 스레드로 알고 있지만, 유명한 DB 시스템인 MySQL, MS SQL, Oracle 등 멀티스레드 기반으로 만들어졌습니다. 그 말은 즉 Race Condtion이 발생할 수 있는 환경에 놓여있다는 거죠. Race Condition 종류와 SolutionDirty WritesDirty Writes는 아직 Commit 되지 않은 데이터에 쓰기(Write)을 하려고 할 때 발생합니다. 예를 들어서 Transaction A와 Tr..

데이터베이스: 트랜잭션과 ACID 원칙

트랜잭션(Transaction)트랜잭션은 DB에서 하나의 논리적 작업 단위(a unit of work)를 얘기합니다. 이 단위 안에는 한 가지의 요청(INSERT, UPDATE, DELETE 등)만 있을 수 있고, 여러가지 요청이 포함되어 있을 수 있죠. 이런 트랜잭션은 데이터의 무결성(Integrity)을 보장하기 위해서 ACID라는 특성을 가지고 있는데요. 오늘은 이 네 가지 특성에 대해서 알아볼까합니다. 원자성(Atomicity)원자성(Atomicity)은 한마디로 '전부 성공하거나, 아니면 아예 실행되지 않거나(All or Nothing)'로 정리할 수 있습니다. 예를 들어, 한 트랜잭션에서 100가지 종류의 음식을 저장한다고 가정해 봅시다. 99가지는 저장되었지만, 마지막 딱 1가지에서 오류가 ..