일관성
title: 2026-03-17 author: 강병호 (이름) date: 2026-03-17 (날짜) category: TIL/강병호/2026/03 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —
1. 최종적 일관성 (Eventual Consistency)
최종적 일관성은 분산 시스템에서 고가용성(High Availability)을 확보하기 위해 사용하는 일관성 모델입니다. 데이터가 업데이트되었을 때, 그 변경 사항이 즉시 모든 노드에 반영되지는 않지만 비동기적으로 전파되어 결국 모든 노드가 동일한 데이터를 갖게 되는 상태를 의미합니다.
-
동작 방식: 특정 노드에서 데이터 수정이 발생하면 다른 노드로 복제가 시작됩니다. 복제가 완료되기 전까지는 각 노드마다 데이터 상태가 일시적으로 다를 수 있습니다.
-
장점: 복제가 진행 중인 노드에서도 조회 연산을 허용하기 때문에 시스템 전체의 응답 속도가 빠르고 가용성이 높습니다.
-
단점: 클라이언트가 데이터를 수정한 직후 다른 노드에서 조회할 경우, 최신 데이터가 아닌 오래된 데이터(Stale Data)를 읽을 위험이 있습니다.
2. 강한 일관성 (Strong Consistency) 과의 차이
강한 일관성은 어떤 연산이 끝난 직후, 시스템 내의 모든 노드가 반드시 동일한 데이터를 갖도록 보장하는 모델입니다.
-
동작 방식: 사용자가 데이터를 수정한 후, 모든 관련 노드에 복제가 완료될 때까지 다른 읽기 연산을 차단하거나 대기시킵니다. 따라서 어느 노드에서 읽어도 반드시 가장 최신의 데이터를 얻게 됩니다.
-
장점: 데이터의 정확성과 신뢰성이 절대적으로 필요한 금융 시스템이나 결제 서비스 등에 적합합니다.
-
단점: 복제가 끝날 때까지 대기해야 하므로 응답 시간이 길어질 수 있고, 일부 노드에 장애가 발생하면 전체 서비스의 가용성이 저하될 수 있습니다.