LabHub

블로그

시스템 디자인 마스터 클래스: 1B QPS·Multi-Region·Data Lakehouse·Consensus·Cost·Observability 완전 가이드 (2025~2026)

"The only new thing in the world is the history you don't know." — Harry Truman "Software architecture is the set of decisions which, if made well, will prevent you from having to make them again." — Ralph Johnson

Staff+ 인터뷰에서 System Design 라운드가 결정적이다. 왜? 코딩은 LeetCode로 벼락치기 가능하지만, 시스템 디자인은 실전 경험만이 쌓는다.

이 글은 2024~2025년 실제 대규모 시스템 아키텍처를 분해하고, 그 안에 들어간 수십 개 의사결정의 Trade-off 수학을 체계화한다. 1B QPS·Multi-region·Data Lakehouse·Consensus·Cost·Observability 6대 축.

입문서 아니라 Staff+의 방어 무기로 설계.

1. 스케일의 분수령 — QPS 단위의 의미

1.1 QPS 단위별 아키텍처 분수령

QPS아키텍처사례
10~100Single Server + DBMVP
1KLB + N App + Single DBStartup MVP+
10KCached Reads + Replicated DBGrowth stage
100KSharded DB + Async + CDNScale up
1MMulti-region + Specialized data storesHyperscaler
10M+Custom infra + Edge everywhereFAANG

관찰: 10배씩 오를 때마다 아키텍처 근본 재설계.

1.2 1B QPS란 무엇인가

진짜 Application 1B QPS는 매우 드물다. 보통 "스케일 문제"는 100K~1M 구간.

1.3 스케일이 바꾸는 것

2. Multi-Region 아키텍처

2.1 왜 Multi-Region인가

  1. 지리적 지연 감소: 한국 사용자에게 한국 리전.
  2. 재해 복구 (DR): 한 리전 죽어도 서비스 유지.
  3. 데이터 주권: GDPR·지역 규제.
  4. 부하 분산: 글로벌 트래픽 분산.

2.2 3가지 패턴

  1. Active-Passive (Cold Standby): 한 리전 서비스, 다른 리전 대기.
    • 간단, 비용 ↓, RTO·RPO 길다.
  2. Active-Active Read-Only Replica: 읽기는 로컬, 쓰기는 Primary.
    • 읽기 지연 ↓, 쓰기는 왕복.
  3. Active-Active Multi-Master: 양쪽 리전 모두 쓰기 가능.
    • 복잡, Conflict 해결 필요, 지연 ↓.

2.3 Conflict Resolution 전략

2.4 실전 케이스 — Discord 2024 Multi-region

2.5 Cost 고려

Multi-region은 2~3배 비용 증가. 정당성:

계산 없이 Multi-region 하지 말 것. "Vanity Architecture"의 함정.

3. Data Lakehouse — 2024~2025 데이터 아키텍처

3.1 Data Warehouse vs. Data Lake vs. Lakehouse

3.2 Lakehouse 3대 Table Format

Format주도특징
Apache IcebergNetflix·AWSSchema Evolution·Time Travel·Partition Evolution
Delta LakeDatabricksACID·SCD·Unity Catalog
Apache HudiUberIncremental·MERGE·CDC

2024~2025 트렌드: Iceberg가 표준화 움직임 (Snowflake, Databricks, AWS 모두 지원).

3.3 Lakehouse 아키텍처

Source -> Bronze (Raw) -> Silver (Cleansed) -> Gold (Aggregated)
                                                  |
                                                  v
                                     BI / ML / Analytics

Medallion 아키텍처 (Databricks 대중화).

3.4 Streaming + Batch Unified

3.5 Query Engine

4. Consistency 모델과 Consensus

4.1 CAP 정리

현실: Network Partition은 일어난다 → P는 포기 불가 → C와 A 중 선택.

4.2 PACELC (Abadi 확장)

더 현실적. 예: MongoDB = PA/EC (분단 시 A, 정상 시 C).

4.3 Raft vs. Paxos

기본 흐름:

4.4 Linearizability vs. Serializability

대부분 DB의 "Strong Consistency" 모드 = Strict Serializability.

4.5 실전 Trade-off

의사결정 공식: C를 줄이면 A·L 얻는다. 반대도 성립.

5. 1B QPS 시스템 패턴

5.1 Read-heavy 시스템 패턴

예: Twitter Timeline.

트레이드오프: Write 비용 vs. Read 복잡도.

5.2 Write-heavy 시스템

예: Log Aggregation·Metrics.

5.3 Search 시스템

예: Google·Elastic.

5.4 Chat 시스템

예: Slack·WhatsApp·Discord.

5.5 Payment 시스템

예: Stripe.

6. Cost 최적화 수학

6.1 AWS 주요 비용 3위

6.2 Spot·Reserved·Savings Plan

Rule of Thumb: 정상 운영 Compute 70% Reserved/SP, 나머지 On-demand.

6.3 Storage 최적화

6.4 Network 최적화

6.5 FinOps Principles

6.6 Cost-aware Design 예

7. Observability 3축 실전

7.1 Metric

툴: Prometheus·Datadog·New Relic·Grafana.

비용 고려: Metric Cardinality 폭발 주의. User ID 레이블 위험.

7.2 Log

툴: ELK·Splunk·Datadog Log Management.

비용: Log는 쉽게 월 수만 달러.

7.3 Trace

적용 팁: Sampling + Head-based vs. Tail-based.

7.4 Alert 설계

7.5 2024~2025 Observability 트렌드

8. Scale Failure 모드 — 대표 장애 패턴

8.1 Thundering Herd

캐시 만료 순간 모든 요청이 DB로. 해법: Request Coalescing, Cache Warming, TTL Jitter.

8.2 Cache Stampede

비슷한 패턴, Lock 기반 단일 쿼리. 해법: Probabilistic Early Expiration (XFetch).

8.3 Retry Storm

실패 → 재시도 폭탄 → 더 큰 실패. 해법: Exponential Backoff + Jitter, Circuit Breaker.

8.4 Gray Failure

완전히 죽지 않고 느림. 해법: Health Check에 Latency 포함, SLO 기반 자동 제외.

8.5 Memory Leak in Pod

오랜 기간 천천히 누수. 해법: Memory Limit + Auto-restart, Profiling 주기적.

8.6 Disk Full

관찰 안 되는 채로 급격. 해법: Alert 80%, 자동 Retention.

8.7 DNS 문제

TTL 무시·Cache·Propagation 딜레이. 해법: 낮은 TTL, 중복 DNS.

8.8 Cascading Failures

한 서비스 죽으면 상류도 다 죽음. 해법: Bulkhead (격리), Circuit Breaker, Timeout·Retry 제한.

9. Database 선택 매트릭스

9.1 Decision Tree

Q: Strong Transaction 필요?
  Yes → Relational (Postgres·MySQL·CockroachDB·Spanner)
  No → Q: Scale 요구?
    Massive → Q: Access Pattern?
      Key-Value → DynamoDB·Cassandra·ScyllaDB
      Document → MongoDB·Couchbase
      Time-Series → InfluxDB·TimescaleDB·Prometheus
      Graph → Neo4j·Neptune
      Full-text → Elasticsearch·OpenSearch

9.2 대중적 선택 2024~2025

9.3 PostgreSQL의 부상 2025

단순성·기능의 조합으로 "기본값" 자리 확고.

10. 사례 Deep Dive — Discord 2024

10.1 규모

10.2 Voice 아키텍처

10.3 Chat 스토리지 이동

교훈: 같은 데이터 모델도 Engine 성능 차이 거대.

10.4 사례에서 배울 것

11. System Design 인터뷰 Framework

11.1 RESHADED Framework

11.2 단계별 시간 배분 (45분)

11.3 Top 20 경험 시나리오

  1. URL Shortener.
  2. Rate Limiter.
  3. Twitter Feed.
  4. Chat System.
  5. Video Streaming.
  6. File Storage (Dropbox).
  7. Search (Google).
  8. Notification System.
  9. Ride Hailing (Uber).
  10. Payment System.
  11. Booking System (Airbnb).
  12. Ads System.
  13. Fraud Detection.
  14. Leaderboard.
  15. Analytics Pipeline.
  16. Job Scheduler.
  17. Metrics System.
  18. Log System.
  19. Cache System.
  20. CI/CD System.

각 시나리오 3회 이상 실습. Grokking·ByteByteGo·System Design Primer.

12. System Design 체크리스트 12

13. System Design 안티패턴 10

  1. "Kubernetes 먼저": 10명 팀에 과스펙.
  2. Premature Multi-region.
  3. Microservices 숭배: 적정 크기 무시.
  4. NoSQL 유행: SQL이면 되는 것에 NoSQL.
  5. "우리도 Uber처럼": 트래픽 10K인데 1M 설계.
  6. SLO 없는 Alert: 시끄러운 경보.
  7. Single Point Vendor Lock.
  8. 수동 Scaling: Autoscaling 없음.
  9. Observability 사후약방문.
  10. Cost 무감각: 월 말 청구서에 놀라움.

14. 추천 자료 Top 15

14.1 책

  1. "Designing Data-Intensive Applications" — Kleppmann.
  2. "System Design Interview" — Alex Xu (Vol 1·2).
  3. "Database Internals" — Alex Petrov.
  4. "Streaming Systems" — Akidau.
  5. "Site Reliability Engineering" — Google.

14.2 블로그·유튜브

  1. Netflix Tech Blog.
  2. Uber Engineering.
  3. Discord Engineering.
  4. High Scalability.
  5. ByteByteGo YouTube.

14.3 오픈소스 소스

  1. Kubernetes.
  2. Kafka.
  3. Redis.
  4. PostgreSQL.
  5. etcd.

15. 마무리 — System Design은 Opinion의 공학

"Architecture is about the important stuff. Whatever that is." — Ralph Johnson

System Design은 정답의 과학이 아니라 Trade-off의 공학이다. 같은 문제에 여러 해답이 있고, 각 해답은 다른 가치 (Latency·Cost·Complexity·Availability)를 우선한다.

Staff+ 엔지니어에게 System Design은 의견의 근거 설계다:

각 질문에 실제 숫자와 Trade-off 수학으로 답할 수 있는 것이 Staff+와 Senior의 분수령.

시작은 3가지면 된다:

  1. 이번 주 회사 시스템 한 컴포넌트 수학으로 분석 (QPS·Latency·Cost).
  2. 이번 달 20 시나리오 중 3개 직접 설계.
  3. 다음 분기 Top 5 오픈소스 소스 1개 Deep Dive.

Staff+ 정체성은 오늘 읽는 코드의 근거에서 시작된다.

다음 글 예고 — "Rust 완전 가이드: Ownership·Lifetime·async·Tokio·Axum·실전 프로젝트까지"

Season 2의 두 번째는 언어 Deep Dive. 다음 글은:

시스템 프로그래밍의 현대적 표준, 다음 글에서 이어진다.

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다