Skip to Content
데이터 집약적 애플리케이션 설계
book

데이터 집약적 애플리케이션 설계

by Martin Kleppmann
May 2025
Beginner to intermediate
616 pages
10h 32m
Korean
O'Reilly Media, Inc.
Book available
Content preview from 데이터 집약적 애플리케이션 설계

5장. 복제

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

잘못될 수 있는 것과 잘못될 가능성이 없는 것의 가장 큰 차이점은 잘못될 가능성이 없는 것이 잘못되면 일반적으로 접근하거나 수리할 수 없는 것으로 판명된다는 점입니다.

더글러스 아담스, 모스틀리 무해 (1992)

복제는 네트워크를 통해 연결된 여러 컴퓨터에 동일한 데이터의 사본을 보관하는 것을 의미합니다. 2부 소개에서 설명한 것처럼 데이터를 복제하는 데는 몇 가지 이유가 있습니다:

  • 데이터를 사용자와 지리적으로 가깝게 유지하여 액세스 지연 시간을 줄이려면 다음과 같이 하세요.

  • 일부 부품에 장애가 발생하더라도 시스템이 계속 작동할 수 있도록 하여 가용성을 높이려면 다음과 같이 하세요.

  • 읽기 쿼리를 처리할 수 있는 컴퓨터의 수를 확장하여 읽기 처리량을 늘리려면 다음과 같이 하세요.

이 장에서는 데이터 세트가 너무 작아서 각 머신이 전체 데이터 세트의 사본을 저장할 수 있다고 가정하겠습니다. 6장에서는 이러한 가정을 완화하여 단일 머신에서 처리하기에는 너무 큰 데이터 세트의 파티셔닝(샤딩)에 대해 논의하겠습니다. 이후 장에서는 복제된 데이터 시스템에서 발생할 수 있는 다양한 종류의 오류와 이를 처리하는 방법에 대해 설명합니다.

복제하는 데이터가 시간이 지나도 변하지 않는다면 모든 노드에 데이터를 한 번만 복사하기만 하면 복제가 간단합니다. 복제의 모든 어려움은 복제된 데이터의 변경 사항을 처리하는 데 있으며, 이 장에서는 이 부분에 대해 설명합니다. 노드 간에 변경 사항을 복제하는 데 널리 사용되는 세 가지 알고리즘인 단일 리더, 다중 리더,리더리스 복제에 대해 설명합니다. 거의 모든 분산 데이터베이스는 이 세 가지 접근 방식 중 하나를 사용합니다. 모두 다양한 장단점이 있으며, 이에 대해 자세히 살펴보겠습니다.

예를 들어 동기식 복제를 사용할지 비동기식 복제를 사용할지, 실패한 복제본을 처리하는 방법 등 복제와 관련하여 고려해야 할 많은 절충안이 있습니다. 이러한 사항은 데이터베이스의 구성 옵션인 경우가 많으며, 세부 사항은 데이터베이스마다 다르지만 일반적인 원칙은 여러 구현에서 비슷합니다. 이 장에서는 이러한 선택에 따른 결과에 대해 설명합니다.

데이터베이스 복제는 오래된 주제입니다. 네트워크의 근본적인 제약 조건이 변하지 않았기 때문에 1970년대[1]에 연구된 이래로 그 원리는 크게 변하지 않았습니다. 그러나 연구 외적으로 많은 개발자들은 오랫동안 데이터베이스가 하나의 노드로만 구성되어 있다고 가정해 왔습니다. 분산 데이터베이스가 주류로 사용된 것은 최근의 일입니다. 많은 애플리케이션 개발자가 이 분야를 처음 접하기 때문에 최종 일관성과 같은 문제에 대해 많은 오해가 있었습니다.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

머신러닝 시스템 설계

머신러닝 시스템 설계

칩 후옌
견고한 데이터 엔지니어링

견고한 데이터 엔지니어링

조 라이스, 맷 하우슬리

Publisher Resources

ISBN: 9798341653504Supplemental Content