"매 module = 1 concern, 1 contract, 1 owner". Parnas 1972 의 information hiding 매 origin. 2026 modular 의 매 form: ES modules, Rust crates, Python packages, Bazel targets — 매 boundary 의 explicit dependency graph.
매 핵심
매 원칙
High cohesion: 매 module 의 single responsibility.
Low coupling: 매 inter-module 의 narrow interface.
Information hiding: 매 implementation detail 의 hide. Public surface 의 minimize.
Acyclic dependency: 매 graph 의 DAG. Cycle = refactor signal.
매 boundary type
Logical: namespace / package.
Physical: separate compile unit / artifact.
Process: separate deployable (microservice).
Trust: separate security domain.
매 응용
Library author: 매 stable public API + private internals.
언제: 매 module boundary 의 propose, dependency graph 의 visualize, refactor 의 split-suggest.
언제 X: 매 domain ownership decision, team org boundary — Conway's law 의 human judgment.
❌ 안티패턴
God module: 매 utils.ts 의 1000+ exports. Cohesion = 0.
Circular dependency: A → B → A. Test 의 hard, build 의 slow.
Leaky abstraction: public surface 의 internal type 의 expose.
Premature modularization: 100 LOC 매 5개 module = over-engineering.
🧪 검증 / 중복
Verified (Parnas 1972 "On the Criteria...", Clean Architecture by Martin, Software Engineering at Google).