📘

4단계: 분산 시스템 & 아키텍처 (Distributed Systems)

분산 트랜잭션, 일관성 모델, 샤딩, 이벤트 드리븐 아키텍처를 다루는 모듈

모듈형 학습 자동 정렬

🧠 모듈 개요

이 단계에서 얻는 것

이 단계는 단일 서버를 넘어선 분산 환경에서의 아키텍처를 다룹니다.

  • 데이터 분산의 기술: 샤딩(Sharding), 컨시스턴트 해싱으로 무한 확장의 원리를 이해합니다.
  • 분산 정합성: 2PC, Saga 패턴으로 분산 환경에서 트랜잭션을 설계합니다.
  • 이벤트 기반 아키텍처: Kafka를 활용한 비동기 통신과 결과적 일관성을 확보합니다.

이 모듈을 보는 방법

  1. 분산의 기초: CAP 이론과 일관성 모델(Strong vs Eventual)을 이해하고
  2. 데이터 확장: 샤딩 전략과 라우팅 원리를 파악한 뒤
  3. 트랜잭션: 분산된 서비스 간 정합성을 맞추는 패턴(Saga)을 학습합니다.

왜 이런 순서인가

분산 시스템은 “확장성"을 얻는 대신 “일관성"을 희생하는 트레이드오프의 연속입니다. 그래서 이론적 배경(CAP/Consistency)을 먼저 잡고, 구체적인 기술(Kafka, Sharding)로 들어가는 흐름입니다.

📑 이 모듈의 학습 노트

Kafka

Kafka 재시도/DLQ 설계

재시도 토픽, DLQ, 멱등 처리로 Kafka 소비 실패를 다루는 패턴

Kafka Retry DLQ
Distributed Systems

분산 트랜잭션: 2PC에서 SAGA까지

마이크로서비스 환경에서 데이터 정합성을 어떻게 보장할까요? 강한 일관성(2PC)의 한계와 결과적 일관성(SAGA) 패턴의 구현 방법을 다룹니다.

Distributed Transaction SAGA 2PC
Distributed Systems

데이터 정합성 모델: Strong부터 Eventual까지

분산 시스템에서 '최신 데이터'를 본다는 것의 의미와 비용. Linearizability, Sequential, Eventual Consistency의 차이를 명확히 구분합니다.

Consistency Distributed Systems Linearizability
Database

데이터 샤딩과 Consistent Hashing

DB 데이터를 여러 서버에 나누는 샤딩 전략과, 서버 증설 시 데이터 이동을 최소화하는 Consistent Hashing 알고리즘 설명.

Sharding Consistent Hashing Database Scaling