시스템 설계 면접 키트
시스템 설계를 단계별로 연습: 추정, 복원력 패턴, 그리고 URL 단축기와 속도 제한기부터 메시지 큐, 예약, LLM 서빙까지 15개 참조 설계.
학습
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)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' LibrarySystem Design Document Template
전체System design at scale – requirements, capacity estimates (KaTeX), API, data model, HLD, deep dives, reliability, cost, trade-offs
참조 설계
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)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
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)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)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
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
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
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
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
Job Scheduler System Design Template (Reference Design)
전체Distributed scheduler: cron, delayed and one-off jobs, leases and visibility timeouts, fencing, idempotent handlers, retries, DLQ
Payment Ledger System Design Template (Reference Design)
전체Payments and double-entry ledger: idempotency keys, payment state machine, PSPs, outbox, reconciliation, audit, PCI DSS scope
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
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
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
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)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)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
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
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
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
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