왜 Nx인가?
개발자가 다양한 도구와 프레임워크를 구성, 유지 관리하고 특히 통합하는 데 어려움을 겪고 있기 때문에 Nx를 만들었습니다. 소수의 개발자에게 잘 작동하는 동시에 팀 전체로 쉽게 확장할 수 있는 시스템을 설정하는 것은 어려운 일입니다. 여기에는 로우레벨 빌드 도구 설정, 빠른 CI 구성, 코드베이스의 건전성, 최신성, 유지보수 가능성 유지 등이 포함됩니다.
저희는 쉽게 채택하고 확장할 수 있는 솔루션을 제공하고자 했습니다.
Nx는 어떻게 도움이 되나요?
간단히 말해, Nx는 로컬 및 CI에서 계산의 속도를 높이고(예: 빌드, 테스트 등) 플러그인을 통해 툴링을 통합 및 자동화하는 데 도움이 됩니다. 이 모든 기능은 점진적으로 도입할 수 있습니다. 플러그인을 사용할 수 있지만 반드시 사용할 필요는 없습니다. 자세한 내용은 다음 섹션의 Nx 아키텍처를 참조하세요.
Nx를 사용하여 다음을 수행할 수 있습니다.
- 로컬 및 CI(모노레포 또는 스탠드얼론 애플리케이션)에서 기존 프로젝트의 빌드 및 테스트 속도를 높입니다.
- 하위 레벨 빌드 도구를 구성할 필요 없이 Nx 플러그인을 사용하여 새 프로젝트를 빠르게 scaffold할 수 있습니다.
- 새로운 툴(예: Storybook, Tailwind 등)을 프로젝트에 쉽게 통합할 수 있습니다.
- 커스텀 제너레이터 및 린트 규칙으로 일관성 및 코드 품질 보장
- 자동화된 코드 마이그레이션 기능을 사용하여 프레임워크와 도구를 업데이트하고 워크스페이스를 항상 최신 상태로 유지
Nx는 어떻게 작동하나요?
Nx는 필요한 기능만 사용할 수 있도록 모듈식으로 구축되었습니다.

- Nx 패키지는 워크스페이스 분석, 작업 실행, 캐싱, 배포, 코드 생성과 자동 코드 마이그레이션과 같은 기술에 구애받지 않는 기본적인 기능을 제공합니다.
- 플러그인은 Nx 패키지가 제공하는 기본 기능 위에 구축된 NPM 패키지입니다. Nx 플러그인에는 코드 생성기, 실행기(하위 수준 빌드 도구 추상화) 및 도구를 최신 상태로 유지하기 위한 자동화된 코드 마이그레이션이 포함되어 있습니다. 모든 JS 또는 비-JS 프로젝트에서 동일한 방식으로 작동하는 Nx 패키지와 달리 플러그인은 일반적으로 기술별로 다릅니다. 예를 들어, @nx/react는 React 앱 및 라이브러리 빌드에 대한 지원을 추가하고, @nx/cypress는 Cypress를 사용한 e2e 테스트 기능을 추가합니다. 플러그인은 서로 다른 도구를 통합할 때 발생하는 마찰을 없애고 최신 상태로 유지할 수 있는 유틸리티를 제공하여 개발자의 생산성을 높여줍니다. Nx 팀은 React, Next, Remix, Angular, Jest, Cypress, Storybook 등을 위한 플러그인을 유지 관리합니다. nx/plugin 패키지를 사용하여 새로운 플러그인을 쉽게 스캐폴딩하거나 로컬 워크스페이스를 자동화할 수도 있습니다. 80개 이상의 커뮤니티 플러그인도 있습니다.
- Devkit은 Nx 플러그인을 빌드하기 위한 유틸리티 세트입니다.
- Nx Cloud는 원격 캐싱 및 분산 작업 실행을 추가하여 CI에서 프로젝트를 확장하는 데 도움이 됩니다. 또한 GitHub, GitLab 및 BitBucket과 통합하고 검색 가능한 구조화된 로그를 제공하여 개발자의 편의성을 개선합니다. nx.app에서 자세히 알아보세요.
- Nx Console은 VSCode, IntelliJ 및 VIM을 위한 확장 기능입니다. 코드 자동 완성, 대화형 생성기, 워크스페이스 시각화, 강력한 리팩토링 등을 제공합니다. 여기에서 설치할 수 있습니다.
Reference