최종적 일관성(Eventual Consistency)이란?

최종적 일관성이란 무엇인가

분산 시스템에서 여러 서버(노드)에 동일한 데이터를 복제해 저장할 때, 모든 노드가 항상 같은 값을 보장하기는 어렵습니다. 최종적 일관성(Eventual Consistency)은 데이터를 업데이트한 직후에는 노드마다 값이 다를 수 있지만, 시간이 지나 추가 업데이트가 없으면 결국 모든 노드가 동일한 값으로 수렴한다는 일관성 모델입니다. 즉 ‘지금 당장은 아니지만 언젠가는 모두 같아진다’는 것이 핵심 개념입니다.

동작 원리와 예시

예를 들어 카카오톡 같은 메신저 서비스가 전 세계 여러 데이터센터에 서버를 두고 있다고 가정해봅시다. 서울에 있는 사용자가 프로필 사진을 변경하면, 그 정보는 먼저 서울 서버에 저장됩니다. 그런데 도쿄나 미국의 서버에는 아직 복제가 안 되어서, 그 지역 사용자는 몇 초간 예전 프로필 사진을 보게 될 수 있습니다. 하지만 몇 초 뒤 복제가 완료되면 전 세계 모든 서버가 동일한 최신 프로필 사진 정보를 갖게 됩니다. 이 잠깐의 ‘불일치 구간’을 허용하는 대신, 시스템 전체는 더 빠르게 응답하고 장애에도 잘 견딜 수 있습니다.

대표적으로 Amazon DynamoDB, Cassandra, MongoDB의 일부 읽기 옵션 등이 최종적 일관성을 채택하고 있습니다.

실무에서 왜 사용할까

강한 일관성(Strong Consistency)을 유지하려면 모든 노드가 쓰기 작업이 끝날 때까지 서로 응답을 기다려야 하므로 속도가 느려지고, 네트워크 장애 시 시스템 전체가 멈출 위험이 있습니다. 반면 최종적 일관성을 채택하면 다음과 같은 이점이 있습니다.

  • 가용성(Availability) 향상: 일부 노드가 응답하지 않아도 서비스는 계속 동작
  • 확장성(Scalability) 개선: 노드를 늘려도 성능 저하가 적음
  • 사용자 체감 속도 향상: 즉각적인 응답 제공

대신 은행 잔액이나 재고 수량처럼 정확성이 매우 중요한 데이터에는 적합하지 않을 수 있어, 서비스 특

댓글 남기기