"매 network 의 invisible 한 assumption 의 매 production failure 의 source". 1994년 Peter Deutsch (Sun) 가 매 7 fallacies 의 articulate, 1997년 James Gosling 가 8th 의 add. 매 2026 cloud-native 시대 에도 매 microservices / serverless / edge compute 의 매 매 valid.
매 핵심
매 8 Fallacies
Network 의 reliable: 매 packet drop / partition / DNS failure 의 inevitable.
Latency 의 zero: 매 LAN ~0.5ms, 매 cross-region ~150ms, 매 satellite ~600ms.
Bandwidth 의 infinite: 매 video / ML model weights / log shipping 의 saturate.
Network 의 secure: 매 default 의 insecure — 매 zero-trust assume.
Topology 의 안 변함: 매 autoscaling / k8s pod reschedule / failover 의 매 second.
Administrator 의 single: 매 multi-cloud / multi-region 의 매 다른 policy.
Transport cost 의 zero: 매 serialization / TLS handshake / egress fee 의 real.
Network 의 homogeneous: 매 IPv4/IPv6, 매 protocol versions, 매 MTU mismatch.
매 왜 fallacy 인가
매 dev 의 localhost / monolith mental model 의 distributed 에 적용 시 fail.
매 "happy path" coding 의 매 timeout / retry / circuit breaker 의 lack.
매 50ms RTT 의 매 100 calls 의 5 second user-facing latency.
매 응용
Microservices design — 매 call graph 의 latency budget 산정.
Cross-region replication — 매 split-brain / eventual consistency 의 plan.
Edge computing — 매 intermittent connectivity 의 first-class.
💻 패턴
Pattern 1: Timeout + Retry with Exponential Backoff
importpLimitfrom"p-limit";constdbLimit=pLimit(20);// 매 DB pool 의 isolate
constapiLimit=pLimit(50);// 매 external API 의 separate
asyncfunctiongetUser(id: string){returndbLimit(()=>db.users.findOne({id}));}
// 매 user-facing 200ms 의 budget
// API gateway: 20ms
// auth check: 10ms (cached)
// service call: 50ms (timeout 100ms)
// DB query: 30ms (timeout 80ms)
// serialization: 10ms
// buffer: 80ms
// 매 each hop 의 explicit budget — over 시 fail fast.
Pattern 6: Chaos Testing (Toxiproxy)
# 매 latency injection
toxiproxy-cli toxic add api -t latency -a latency=500 -a jitter=100# 매 packet loss
toxiproxy-cli toxic add db -t timeout -a timeout=2000