면접 준비하다가 ACID 나와서 외우려는데, 매번 A가 원자성이고 C가... 하다가 막힙니다. 단어는 대충 아는데 각각이 실제로 뭘 보장한다는 건지 예시로 안 그려져서 자꾸 까먹어요.
제가 지금 아는 걸 적어보면요.
A - Atomicity (원자성)
C - Consistency (일관성)
I - Isolation (격리성)
D - Durability (지속성)
원자성은 그나마 알 것 같아요. 계좌 이체할 때 A에서 빼고 B에 더하는 게 둘 다 되거나 둘 다 안 되거나 해야 한다는 거죠. 중간에 하나만 되면 돈이 사라지니까요.
근데 나머지가 애매합니다. 특히 일관성이랑 격리성이 뭐가 다른지 모르겠어요. 일관성도 뭔가 데이터 안 꼬이게 한다는 거고 격리성도 서로 간섭 안 하게 한다는 건데 둘이 비슷하게 들려서요.
궁금한 거요.
1. 일관성이라는 게 정확히 뭘 지켜주는 건가요? 제약조건 같은 거 말하는 건가요?
2. 격리성은 위에서 말한 격리수준(READ COMMITTED 이런 거)이랑 같은 얘기인가요?
3. 지속성은 그냥 커밋하면 디스크에 저장돼서 안 날아간다는 거 맞죠? 근데 서버 꺼져도 진짜 안 날아가나요? 어떻게 보장하는지 궁금해요.
각 글자를 실제 예시로 딱 이해되게 설명해주시면 정말 감사하겠습니다.