Markdown Editor

시스템 설계 면접 키트

시스템 설계를 단계별로 연습: 추정, 복원력 패턴, 그리고 URL 단축기와 속도 제한기부터 메시지 큐, 예약, LLM 서빙까지 15개 참조 설계.

1단계

학습

  1. Back-of-Envelope Estimation and Capacity Model Template

    전체

    Reference latency and unit tables, assumptions register, QPS, storage, bandwidth, cache, server and cost formulas, worked example, sensitivity, traceability

    Jeff Dean latency numbers (LADIS 2009)
  2. Resilience and Load Shedding Design Template (Retries, Circuit Breakers)

    전체

    Failure model, deadlines, retries with jitter and budgets, circuit breakers, bulkheads, backpressure, criticality-based shedding, degradation, fault tests

    Google SRE book ch. 21-22; Amazon Builders' Library
  3. System Design Document Template

    전체

    System design at scale – requirements, capacity estimates (KaTeX), API, data model, HLD, deep dives, reliability, cost, trade-offs

2단계

참조 설계

  1. URL Shortener System Design Template (Reference Design)

    전체

    Capacity (KaTeX), API, base62 key generation and collisions, 301 vs 302, caching, click analytics, abuse protection, custom aliases, expiry, multi-region

    RFC 9110 (redirect status codes)
  2. Rate Limiter System Design Template (Reference Design)

    전체

    Distributed rate limiter: token bucket vs window algorithms, atomic Redis scripts, multi-region shares, 429 headers, fail-open

  3. Distributed Key-Value Store System Design Template (Dynamo-Style)

    전체

    Consistent hashing, vnodes, quorums (R+W>N), vector clocks vs LWW, hinted handoff, Merkle anti-entropy, gossip, LSM compaction, cache eviction, hot keys

    Dynamo (DeCandia et al., SOSP 2007)
  4. Distributed Message Queue System Design Template (Kafka-Style Log)

    전체

    Partitions, log segments, retention, acks and idempotence, consumer groups, offsets, delivery semantics, ordering, ISR replication, backpressure, DLQ, schemas

    Apache Kafka 4.3 documentation; Kafka paper (NetDB 2011)
  5. News Feed System Design Template (Reference Design)

    전체

    Social feed: hybrid fan-out on write and read, celebrity threshold, ranking pipeline, feed cache, snapshot pagination, media

  6. Chat System Design Template (Reference Design)

    전체

    Real-time 1:1 and group chat: WebSocket gateways, per-conversation ordering, fan-out, receipts, offline sync, push, E2EE

  7. Notification Service System Design Template (Reference Design)

    전체

    Push, email, SMS and in-app: templates, preferences and opt-out, priority queues, caps, provider failover, retries, dedup

  8. Ticket and Hotel Booking System Design Template (Reference Design)

    전체

    Seat and room inventory, holds with TTL, overbooking math, conditional writes, idempotency, payment saga, waiting room, search vs booking paths

  9. Search Autocomplete System Design Template (Reference Design)

    전체

    Typeahead: trie/FST/edge n-gram index, popularity and recency ranking, query-log pipeline, edge cache, latency budget, safety

  10. Job Scheduler System Design Template (Reference Design)

    전체

    Distributed scheduler: cron, delayed and one-off jobs, leases and visibility timeouts, fencing, idempotent handlers, retries, DLQ

  11. Payment Ledger System Design Template (Reference Design)

    전체

    Payments and double-entry ledger: idempotency keys, payment state machine, PSPs, outbox, reconciliation, audit, PCI DSS scope

  12. Ride-Hailing Dispatch System Design Template (Reference Design)

    전체

    Ride matching: location ingestion, H3/geohash index, batched matching, ETA, trip state machine, single assignment, surge note

  13. Video Streaming System Design Template (Reference Design)

    전체

    Video upload and ABR streaming: chunked transcoding, renditions ladder, CMAF HLS/DASH, CDN, DRM note, view counts, storage tiers

  14. Collaborative Editing System Design Template (Reference Design)

    전체

    Real-time co-editing: OT vs CRDT, sequence CRDT, state-vector sync, presence, offline merge, snapshots and compaction, access

  15. LLM Inference Serving and Vector Search Platform Design Template

    전체

    Gateway, router, continuous batching, paged KV cache, GPU memory and throughput math, TTFT/TPOT SLOs, autoscaling, quantization, HNSW/IVF, cost per token

    PagedAttention (Kwon et al., SOSP 2023)
  16. Distributed Unique ID Generator System Design Template

    전체

    UUIDv4 and v7 per RFC 9562, Snowflake 41/10/12 layout, clock skew and backwards clocks, leased worker IDs, index locality, 53-bit JS limit, ticket servers

    RFC 9562 (May 2024)
  17. Gaming Leaderboard System Design Template

    전체

    Introductory: sorted sets, time-encoded tie breaking within 53 bits, top N and my rank, sharded ranks, friends boards, seasonal resets, anti-cheat boundary

  18. Distributed Cache System Design Template

    전체

    Distributed cache: cache-aside, delete on write, leases against herds, commit-log invalidation across regions, slot maps, hot keys, gutter pool, warm-up

  19. Photo Sharing System Design Template

    전체

    Resumable direct upload, media pipeline, display sizes, storage tiers, 64-bit time-sortable ids, sharded PostgreSQL, celebrity fan-out, CDN

  20. Full-Text Search Engine System Design Template

    전체

    Inverted index, segments, real-time ingestion vs queries, document and time sharding, replicas, BM25 plus reranker, autocomplete boundary, relevance evaluation

  21. Maps and Navigation System Design Template

    전체

    Vector tiles and CDN, region-sharded routing graph with customizable contraction hierarchies, live-traffic ETA, rerouting, geocoding, offline packs