"매 single repo, 매 multiple project, 매 shared code, 매 atomic commit". Google/Meta scale 의 Bazel/Buck 의 origin. 2026 mainstream 의 Turborepo 2.x / Nx 21 / pnpm workspaces — 매 small team 도 의 monorepo 의 가능.
매 핵심
매 benefit
Atomic refactor: 매 lib API change + 매 caller update 의 1 PR.
Shared dependency: 매 single version policy. No "diamond dep" hell.
Code reuse: 매 internal lib import 의 trivial.
Unified tooling: 매 lint, test, CI 의 1 config.
매 cost
Build complexity: 매 selective rebuild 의 essential.
Repo size: 매 git clone 의 slow. Sparse checkout / partial clone.
CI scaling: 매 every PR 의 entire repo 의 test = N/A. Affected-only.
언제: 매 task pipeline 의 setup, dependency graph 의 visualize, affected-only command 의 generate, package.json 의 boilerplate.
언제 X: 매 organizational decision (mono vs poly) — Conway's law + team topology judgment.
❌ 안티패턴
No build cache: 매 PR 의 매 full rebuild = CI cost explosion.
Inconsistent tooling: 매 package 의 own ESLint config = chaos.
Cyclic package deps: A → B → A. nx graph / turbo 의 detect.
Ignoring affected: 매 always full test = 매 monorepo 의 advantage 의 lose.