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 데이터 집약적 애플리케이션 설계

8장. 분산 시스템의 문제점

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

방금 만났어요네트워크가 느려요하지만 여기 내 데이터가 있어요그러니 저장해둬요

카일 킹스베리, 칼리 래 젭슨과 네트워크 파티션의 위험 (2013)

지난 몇 장에서 반복되는 주제는 시스템이 문제를 처리하는 방식이었습니다. 예를 들어, 복제 장애 조치("노드 중단 처리하기"), 복제 지연("복제 지연 문제"), 트랜잭션의 동시성 제어("약한 격리 수준")에 대해 논의했습니다. 실제 시스템에서 발생할 수 있는 다양한 에지 케이스를 이해하게 되면, 이를 처리하는 데 더 능숙해질 수 있습니다.

그러나 결함에 대해 많이 이야기했음에도 불구하고 지난 몇 장은 여전히 지나치게 낙관적이었습니다. 현실은 훨씬 더 어둡습니다. 이제 비관론을 최대치로 끌어올리고 잘못될 수 있는 것은 무엇이든 잘못될 것이라고 가정해 보겠습니다.i (숙련된 시스템 운영자는 이것이 합리적인 가정이라고 말할 것입니다. 친절하게 물어보면 과거 전투의 상처를 간호하면서 무서운 이야기를 들려줄지도 모릅니다.

분산 시스템으로 작업하는 것은 단일 컴퓨터에서 소프트웨어를 작성하는 것과 근본적으로 다르며, 가장 큰 차이점은 일이 잘못될 수 있는 새롭고 흥미로운 방법이 많다는 것입니다 [1,2]. 이 장에서는 실제로 발생하는 문제와 우리가 신뢰할 수 있는 것과 신뢰할 수 없는 것에 대한 이해를 맛볼 수 있습니다.

결국 엔지니어로서 우리의 임무는 모든 것이 잘못되더라도 제 역할을 하는(즉, 사용자가 기대하는 보증을 충족하는) 시스템을 구축하는 것입니다. 9장에서는 분산 시스템에서 이러한 보장을 제공할 수 있는 알고리즘의 몇 가지 예를 살펴보겠습니다. 하지만 먼저 이 장에서는 우리가 직면한 과제가 무엇인지 이해해야 합니다.

이 장에서는 분산 시스템에서 잘못될 수 있는 일들에 대해 철저하게 비관적이고 우울하게 개괄적으로 살펴봅니다. 네트워크의 문제("신뢰할 수 없는 네트워크"), 시계와 타이밍 문제("신뢰할 수 없는 시계"), 그리고 이러한 문제를 어느 정도까지 피할 수 있는지에 대해 살펴볼 것입니다. 모든 문제의 결과는 방향을 잃게 하므로 분산 시스템의 상태에 대해 생각하는 방법과 발생한 일에 대해 추론하는 방법("지식, 진실, 거짓")에 대해 살펴볼 것입니다.

장애 및 부분 장애

한 대의 컴퓨터에서 프로그램을 작성할 때는 일반적으로 프로그램이 작동하거나 작동하지 않는 등 상당히 예측 가능한 방식으로 동작합니다. 버그가 있는 소프트웨어는 때때로 컴퓨터가 "나쁜 하루를 보내고 있는" 것처럼 보일 수 있지만(재부팅하면 해결되는 문제인 경우가 많습니다), 이는 대부분 잘못 작성된 소프트웨어의 결과일 뿐입니다.

하드웨어가 올바르게 작동하면 동일한 작업을 ...

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