정지용
기술스택 목록
도구

Nx

프로젝트 3에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

여러 앱과 라이브러리를 하나의 워크스페이스에서 관리하는 모노레포 빌드 시스템

Nx는 여러 개의 애플리케이션과 라이브러리를 단일 저장소(모노레포)에서 함께 관리할 수 있게 해주는 빌드 시스템이자 워크스페이스 툴체인입니다. 프로젝트 수가 늘어나면서 발생하는 빌드 시간 증가, 코드 중복, 프로젝트 간 의존성 관리의 어려움을 해결하기 위해 만들어졌습니다. 프로젝트 간 의존성 그래프를 분석해 영향받은 부분만 빌드·테스트하고, 결과를 캐싱해 반복 작업 속도를 높이는 데 초점을 둡니다.

이럴 때 사용합니다

  • 프론트엔드·백엔드 등 여러 앱과 공유 라이브러리를 한 저장소에서 관리하고 싶을 때
  • 프로젝트 수가 늘어나면서 전체 빌드/테스트 시간이 길어져 최적화가 필요할 때
  • 여러 팀이 공통 코드를 재사용하면서도 프로젝트별 경계를 명확히 유지하고 싶을 때
  • 변경된 코드에 영향을 받는 범위만 골라 CI를 빠르게 돌리고 싶을 때

핵심 개념

Monorepo
여러 개의 독립적인 앱과 라이브러리를 하나의 저장소와 하나의 워크스페이스 설정으로 함께 관리하는 방식입니다.
Project Graph
워크스페이스 내 프로젝트 간 의존 관계를 자동으로 분석해 그래프로 표현한 것으로, 어떤 프로젝트가 변경되면 어떤 프로젝트에 영향을 주는지 파악하는 데 사용됩니다.
Affected Commands
변경된 파일을 기준으로 영향을 받는 프로젝트만 골라 빌드·테스트·린트를 실행하는 기능으로, 전체 재빌드를 피해 시간을 절약합니다.
Computation Caching
동일한 입력에 대한 빌드/테스트 결과를 캐시에 저장해 두었다가 재사용함으로써 반복 작업 속도를 높이는 메커니즘입니다.
Executors & Generators
Executor는 빌드·테스트 등 실제 작업을 실행하는 단위이고, Generator는 새 프로젝트나 코드 조각을 정해진 규칙에 맞게 자동으로 생성해 주는 스캐폴딩 도구입니다.
Plugins
특정 프레임워크나 언어(예: React, Node, TypeScript)에 맞는 설정과 실행 규칙을 워크스페이스에 추가해 주는 확장 모듈입니다.

기본 nx.json 워크스페이스 설정

각 프로젝트의 build, test 작업에 캐싱을 활성화하고, build 작업은 의존하는 프로젝트의 build가 먼저 끝나도록 설정하는 예시입니다.

JSON
{
  "targetDefaults": {
    "build": {
      "dependsOn": ["^build"],
      "cache": true
    },
    "test": {
      "cache": true
    }
  },
  "defaultBase": "main"
}

처음 쓸 때 흔한 함정

  • 프로젝트 간 의존성 경계를 신경 쓰지 않으면 결국 하나로 뒤엉킨 코드가 되기 쉽습니다
  • 캐싱과 affected 범위 계산 원리를 모르면 결과가 왜 다르게 나오는지 혼란스러울 수 있습니다
  • 플러그인마다 설정 방식과 관례가 달라 처음에는 어떤 설정이 어디서 오는지 파악하기 어렵습니다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

  1. 03인프라
    2026년 7월

    NFT 플랫폼 Nx 모노레포 구조 문서

    NFT 플랫폼의 여러 프런트/백엔드 앱을 Nx 워크스페이스로 통합 관리하는 모노레포 구조 정리 문서

    이 프로젝트에서의 Nx 활용

    여러 앱과 라이브러리를 하나의 워크스페이스에서 관리하는 모노레포 툴체인

    nft-platform-monorepo-docs프로젝트 자세히 보기 →

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.