"매 system 의 behavior 가 매 part 의 sum 보다 크다 — 매 emergence, nonlinearity, feedback.". Complexity theory는 Santa Fe Institute (1984~) 가 정립한 cross-disciplinary field. Software 에서는 Cynefin framework (Snowden), Brooks 의 essential vs accidental complexity, Promise Theory, distributed systems 의 emergent behavior 로 산다. 2026년 ML systems 의 emergent capabilities 도 매 핵심 case.
매 핵심
매 complex vs complicated
Complicated
Complex
Many parts, knowable
Many parts, emergent
Aircraft, watch
Ecosystem, market, brain, microservices fleet
Decompose & analyze
Probe → sense → respond
Predictable
Unpredictable in detail
매 Cynefin (Snowden)
Clear (Simple): cause→effect 자명. Best practice.
Complicated: expert analysis 필요. Good practice.
Complex: emergent, retrospective coherence. Probe → sense → respond.
Chaotic: no cause→effect. Act → sense → respond.
Confusion (Disorder): which domain unclear.
매 essential vs accidental complexity (Brooks)
Essential: 매 problem itself 의 complexity (irreducible).
Accidental: tools, languages, infra 가 만든 complexity (reducible).
매 silver bullet 없음 → essential complexity 의 tackling.
ML emergent capabilities (in-context learning at scale).
Distributed consensus (CAP, FLP impossibility).
Tech debt accumulation (compound complexity).
Team scaling (Brooks' law as complexity manifestation).
💻 패턴
Cynefin-driven decision (in code review)
defcategorize_problem(problem):ifknown_solution(problem):return"Clear: apply best practice"ifexpertise_resolves(problem):return"Complicated: expert analysis"ifrequires_experimentation(problem):return"Complex: probe-sense-respond"ifno_cause_effect(problem):return"Chaotic: act-sense-respond"return"Disorder: clarify first"
Probe → sense → respond (chaos engineering)
// Netflix Chaos Monkey style — controlled probe of complex system
import{ChaosClient}from'@netflix/chaos';constchaos=newChaosClient();awaitchaos.experiment({name:'kill-random-pod-payment-svc',hypothesis:'system handles single pod loss within 30s',blast_radius:'one pod',rollback_on:'p99 > 500ms',observe:['error_rate','latency_p99','saturation'],});
Reduce accidental complexity — replace shell with compiled tool
# Accidental: bash script with 5 sed/awk/jq pipes# Essential: extract user emails from JSON# After: simple, type-checkedimportjsonfrompathlibimportPathemails=[user["email"]foruserinjson.loads(Path("users.json").read_text())ifuser.get("active")]
Power-law detection (scale-free service dependency)
importnumpyasnpimportpowerlaw# In-degree of microservice call graphin_degrees=compute_in_degrees(service_graph)fit=powerlaw.Fit(in_degrees)print(f"alpha={fit.power_law.alpha:.2f}")# ~2-3 → scale-free# Implication: targeted attack on hubs is catastrophic
Promise Theory (Burgess) — autonomous agents
# Each service makes promises, others assessservice:payment-svcpromises:- id:p99_latency_under_300msconditions:[load < 1000rps]valid_until:2026-12-31- id:idempotent_charge_endpointconditions:[]
매 결정 기준
상황
Approach
Clear problem
Apply best practice, automate
Complicated
Expert review, formal analysis
Complex (emergent)
Probe with chaos engineering, observability
Chaotic (incident)
Act first, stabilize, then sense
Tech debt
Distinguish essential vs accidental
기본값: Most production distributed systems 매 Complex domain 매 산다 → SLO + chaos + observability + post-incident review.