Day 45 · 3/5
🌿 중급 DB

ACID가 뭔가요?

쉽게 이해하기

은행 송금을 생각해보세요. 내 계좌에서 돈이 빠져나가면 반드시 상대 계좌에 들어가야 해요. 중간에 오류가 나면 둘 다 취소돼야 하고, 다른 사람 거래에 영향을 주면 안 되죠. ACID는 이런 안전장치를 데이터베이스에 적용한 거예요.

핵심 정리

데이터베이스 트랜잭션이 안전하게 처리되기 위한 4가지 원칙이에요.

자세히 알아보기

ACID는 데이터베이스 트랜잭션의 4가지 보장 사항을 나타내는 약어예요. Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성)이죠. Atomicity는 '전부 아니면 전무'예요. 송금 트랜잭션에서 출금은 됐는데 입금은 실패하면 안 되잖아요? 둘 다 성공하거나, 둘 다 실패해야 해요. Consistency는 데이터 규칙이 항상 지켜져야 한다는 거예요. 계좌 잔액이 마이너스가 되면 안 되는 것처럼요. Isolation은 동시에 실행되는 트랜잭션끼리 서로 영향을 주지 않아야 해요. 내가 송금하는 중에 다른 사람이 내 잔액을 조회하면 정확한 값을 봐야죠. Durability는 커밋된 트랜잭션은 정전이 나도 사라지지 않아야 한다는 거예요. 실무에서는 어떻게 쓰일까요? PostgreSQL, MySQL 같은 관계형 데이터베이스는 기본적으로 ACID를 보장해요. 반면 MongoDB 같은 NoSQL은 성능을 위해 ACID를 일부 포기하기도 해요. 금융 시스템처럼 정확성이 중요한 곳에선 ACID가 필수고, SNS 피드처럼 약간의 오차가 허용되는 곳에선 성능을 우선하죠. ACID를 이해하면 어떤 DB를 선택해야 할지, 트랜잭션을 어떻게 설계해야 할지 판단할 수 있어요.