0Pricing
React Academy · 강의

React 앱으로 Nx 모노레포 만들기

Nx 작업 공간을 구성하고 React 앱을 추가하며 프로젝트 그래프를 이해합니다.

React 앱으로 Nx 모노레포 만들기은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Nx를 사용하는 이유

Nx는 모노레포를 위한 스마트 빌드 시스템입니다. 변경된 항목만 빌드하거나 테스트하는 영향 범위 기반 작업 실행, 변경되지 않은 작업을 다시 실행하지 않는 캐싱, 앱과 라이브러리의 기본 구조를 생성하는 생성기를 제공합니다.

새 Nx 작업 공간 만들기

React에 맞게 미리 구성된 새 Nx 작업 공간의 기본 구조를 생성합니다.

# Create workspace:
npx create-nx-workspace@latest myorg --preset=react-monorepo
# or for Next.js:
npx create-nx-workspace@latest myorg --preset=next

작업 공간 구조

Nx는 코드를 apps/(배포 가능한 애플리케이션)와 libs/(공유 라이브러리)로 구성합니다. 각 프로젝트에는 작업 대상이 정의된 자체 project.json이 있습니다.

myorg/
  apps/
    web/           # React SPA
    admin/         # Admin React SPA
    api/           # NestJS backend
  libs/
    ui/            # shared UI components
    data-access/   # data fetching hooks
    utils/         # shared utilities
  nx.json          # workspace config
  package.json     # single package.json

React 앱 추가하기

Nx React 생성기를 사용해 모든 설정이 미리 연결된 새 앱을 추가합니다.

# Add a new React app:
npx nx generate @nx/react:app customer-portal

# Add a Next.js app:
npx nx generate @nx/next:app marketing

작업 실행하기

개별 프로젝트 또는 모든 프로젝트에 대해 빌드, 테스트, 린트, 실행을 수행합니다.

# Serve a specific app:
npx nx serve web

# Build all apps:
npx nx run-many --target=build --all

# Test a specific library:
npx nx test ui

프로젝트 그래프

nx graph는 모든 앱과 라이브러리 및 그 종속성을 대화형 시각화로 보여 줍니다. 어떤 프로젝트가 어떤 라이브러리에 의존하는지 확인할 수 있습니다.

npx nx graph

Nx 캐싱

Nx는 작업 결과를 로컬에 캐시합니다. 변경되지 않은 작업을 다시 실행하면 캐시가 즉시 사용됩니다. Nx Cloud를 사용하면 팀 구성원과 CI가 공유하는 원격 캐시로 캐싱을 확장할 수 있습니다.

# First run: builds and caches
npx nx build web  # ~30s

# Second run (no changes): cache hit
npx nx build web  # <1s — served from cache

작업 파이프라인

nx.json에서 작업 종속성을 정의합니다. build를 실행하면 먼저 모든 상위 종속 항목에 대해 build가 자동으로 실행됩니다.

// nx.json
{
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"], // run dependency builds first
      "cache": true
    },
    "test": {
      "cache": true
    }
  }
}

규칙 적용용 태그

프로젝트에 태그(예: scope:ui, type:app)를 지정하고 ESLint 규칙을 사용하여 앱이 다른 앱의 내부 코드를 가져오지 못하게 하세요.

// project.json
{
  "tags": ["scope:web", "type:app"]
}

// .eslintrc.json
{
  "rules": {
    "@nx/enforce-module-boundaries": ["error", {
      "depConstraints": [
        { "sourceTag": "type:app", "onlyDependOnLibsWithTags": ["type:lib"] }
      ]
    }]
  }
}

TypeScript 경로 별칭

Nx는 tsconfig.base.json를 경로 별칭으로 자동 구성하므로, 깊은 상대 경로 대신 @myorg/ui로 공유 라이브러리를 가져올 수 있습니다.

// tsconfig.base.json (auto-generated)
{
  "compilerOptions": {
    "paths": {
      "@myorg/ui": ["libs/ui/src/index.ts"],
      "@myorg/utils": ["libs/utils/src/index.ts"]
    }
  }
}

// Usage in apps:
import { Button } from '@myorg/ui';

빠른 확인

Nx 모노레포에서 nx affected --target=build는 무엇을 수행합니까?

복습

create-nx-workspace로 Nx 작업 공간을 만드세요. 앱과 라이브러리에는 nx generate를 사용하고, 작업에는 nx serve/build/test를 사용하며, CI에서는 nx affected를 사용하여 변경된 프로젝트만 처리하세요. 캐싱을 사용하면 변경되지 않은 작업이 즉시 결과를 반환합니다.

자주 묻는 질문

“React 앱으로 Nx 모노레포 만들기” 강의는 무료인가요?

네 — “React 앱으로 Nx 모노레포 만들기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“React 앱으로 Nx 모노레포 만들기”에서 뭘 배우나요?

Nx 작업 공간을 구성하고 React 앱을 추가하며 프로젝트 그래프를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“React 앱으로 Nx 모노레포 만들기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. React 앱으로 Nx 모노레포 만들기
  2. 공유 라이브러리와 내부 패키지
  3. Nx 영향받은 명령과 캐싱
  4. 코드 생성기와 작업 공간 자동화
← React Academy(으)로 돌아가기