Nx는 캐싱과 병렬 실행에 더해 프로젝트 그래프, 코드 생성, 아키텍처 규칙 강제까지 제공하는 모노레포 플랫폼이다. "빠른 실행 한 가지"에 집중하는 Turborepo와 달리 기능을 두루 갖춘 쪽을 지향한다.
핵심 기능
- 로컬·원격 캐시와 병렬 실행: 원격 캐시는 Nx Cloud로 팀·CI와 공유한다
- 프로젝트 그래프(project graph): 앱과 라이브러리가 서로 어떻게 의존하는지 그래프로 보여준다(
nx graph) - affected: git diff와 의존성 그래프로 영향받는 프로젝트만 골라 실행한다(
nx affected -t test). 큰 저장소에서 CI 시간을 크게 줄인다 - generators: 정해진 템플릿으로 라이브러리·컴포넌트를 만들어 구조를 통일한다
- 모듈 경계 규칙(module boundaries): 태그를 붙여 "feature 라이브러리는 다른 feature를 import하지 못한다" 같은 규칙을 린트로 강제한다
- 플러그인: React·Angular·Next.js·NestJS 등과 일부 다른 언어 지원, 여러 CI 머신에 작업 분산
Lerna도 지금은 내부적으로 Nx 위에서 동작한다. 최근에는 AI 도구가 저장소 구조를 읽을 수 있게 MCP(Model Context Protocol) 서버를 제공하는 등 범위를 넓히고 있다(2026 기준).
고르는 기준
- 코드 생성, affected 분석, 아키텍처 거버넌스, 다중 언어가 필요한 큰 조직이라면 Nx
- 그만큼 도입 비용이 든다. 프로젝트를 어떻게 태깅하고 어떤 규칙을 강제할지 정해야 한다
- 그럴 준비가 안 됐다면 Turborepo로 가볍게 시작하고, 팀이 커지면 옮기는 순서가 흔하다
모듈 경계 강제는 사람이 기억하지 않아도 결합도 규칙이 지켜지게 하는 장치이고, 팀 구조와 코드 구조를 맞추는 일은 콘웨이의 법칙와 이어진다. 모노레포 일반은 모노레포를 본다.
출처: Nx: Run Only Tasks Affected by a PR · Enforce Module Boundaries