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

김명수·2026년 1월 19일

매일메일

목록 보기
89/127
post-thumbnail

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

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

  • 최종적 일관성(Eventual Consistency) 이란 분산 시스템에서 고가용성을 유지하기 위해서 사용하는 일관성 모델이며, 데이터가 수정되면, 그 변경 내용은 비동기적으로 다른 노드에 전파되기 때문에 일시적으로 각 노드의 데이터가 다를 수 있지만 시간이 지나면 모든 노드에 변경 사항이 전달되어 결국에는 모든 노드가 동일한 데이터를 가지게 되는 것을 의미
  • 사용자가 특정 노드에 데이터를 수정하면 다른 노드에 변경 사항이 복제되는 상황

  • 위 구성은 복제를 수행하고 있는 노드에 대해 조회 연산을 허용하여 높은 가용성을 유지할 수 있으며, 최종적으로는 모든 노드가 같은 데이터를 가지고 있는 최종적 일관성을 달성할 수 있지만, 일시적인 데이터 불일치가 발생하여 클라이언트는 오래된 데이터를 읽을 수 있다는 단점이 있음

●최종적 일관성과 강한 일관성의 차이

  • 강한 일관성(Strong Consistency) 은 최종적 일관성과는 다르게, 특정 연산이 끝난 직후 모든 노드가 동일한 데이터를 갖도록 보장하는 것을 의미하며 즉, 사용자가 데이터를 수정한 직후 다른 노드에서 해당 데이터를 읽더라도, 반드시 최신 값을 얻게 됨
  • 위 구성에서는 복제가 완료되기 전까지 다른 노드의 읽기 연산을 차단하여 강한 일관성을 달성할 수 있지만, 클라이언트로부터의 요청을 처리할 수 없다는 점에서 가용성이 희생된다는 단점이 있음
profile
신입개발자

0개의 댓글