컨텐츠로 건너뛰기

개념

@aws/nx-plugin은 AWS에서 풀스택 애플리케이션 구축 및 배포 과정을 단순화하는 툴킷을 제공하는 Nx 플러그인입니다. 애플리케이션 및 IaC 코드를 위한 사전 구성된 템플릿을 제공하여 설정 및 구성에 소요되는 시간을 크게 단축합니다. AWS 서비스 통합의 복잡성을 처리하면서도 커스터마이징을 위한 유연성을 유지합니다.

사용자는 사용 가능한 Generators 목록에서 원하는 컴포넌트를 선택하고 구성 옵션을 제공하기만 하면 @aws/nx-plugin이 필요한 스타터 코드를 생성합니다. 이 툴킷에는 API, 웹사이트, 인프라를 생성하거나 AST 변환을 통해 프론트엔드와 백엔드를 통합하는 등 고급 작업을 수행하는 다양한 제너레이터가 포함되어 있습니다.

generator

Nx 기반 구축

Nx는 지능적인 빌드 시스템과 코드 제너레이터라는 두 가지 핵심 기능을 통해 복잡한 다중 언어 프로젝트 관리를 효율적으로 수행하는 스마트 빌드 프레임워크입니다.

빌드 시스템은 고급 캐싱 및 의존성 그래프 분석을 사용하여 태스크 실행을 최적화합니다. 코드 변경 사항에 따라 필요한 부분만 재빌드하여 빌드 시간을 크게 단축합니다. 프로젝트 의존성을 기반으로 최적의 실행 순서를 자동으로 결정하여 테스트, 린팅, 빌드 작업을 병렬로 실행할 수 있습니다. 이는 대규모 코드베이스에서 특히 효율적입니다.

제너레이터는 프로젝트 전반에 걸쳐 일관된 코드 구조를 생성하는 자동화된 스캐폴딩 도구 역할을 합니다. 개별 컴포넌트부터 완전한 애플리케이션까지 미리 정의된 템플릿과 패턴을 따라 생성할 수 있습니다. 팀은 특정 요구사항과 코딩 표준에 맞게 이 제너레이터들을 커스터마이징할 수 있습니다.

이러한 기능들은 모노레포 관리와 팀 간 일관된 개발 관행 유지에 특히 효과적이며, 높은 개발 속도를 유지할 수 있도록 지원합니다.

제너레이터

이 플러그인에서 사용 가능한 모든 컴포넌트는 Generators로 구현되어 반복 작업 자동화와 신규/기존 프로젝트의 일관된 스캐폴딩을 가능하게 합니다.

제너레이터는 Nx CLINx Console IDE 플러그인을 통해 실행할 수 있습니다.

generators

자유로운 수정 가능

생성된 모든 코드는 사용자의 소유이므로 필요에 따라 자유롭게 수정할 수 있습니다. 이는 생성된 코드 중 마음에 들지 않는 부분이 있을 경우 직접 수정할 수 있어 개발자 경험을 크게 단순화합니다.

최소한의 의존성

@aws/nx-plugin은 의존성 수를 최소화하기 위해 노력하며, 시작에 필요한 전역 요구사항은 실행하는 제너레이터에 따라 결정됩니다.

예를 들어 Typescript 기반 제너레이터는 Node 설치만 필요합니다. Python 기반 프로젝트의 경우 UV가 유일한 요구사항입니다.

단일 버전 정책

기본 모노레포 설정은 Node 및 Python 기반 프로젝트 모두에 단일 버전 정책을 사용합니다.

이를 통해 모노레포 내 모든 프로젝트가 기본적으로 동일한 버전의 의존성을 사용하게 되어 버전 불일치 문제를 줄입니다.

Node 측면에서는 루트에 단일 lockfile과 모든 의존성을 포함하는 단일 node_modules가 생성됩니다. 새로운 의존성 추가는 루트 package.json에서 수행합니다.

Python 측면에서는 모노레포 루트에 단일 .venv가 생성되며 모든 의존성이 여기에 설치됩니다. 각 Python 프로젝트는 자체 pyproject.toml을 가지지만, 의존성 버전은 uv 워크스페이스에 의해 관리되며 루트의 uv.lock 파일에 기록됩니다.

타입 안전성

@aws/nx-plugin은 IDE 자동 완성을 통한 개발자 경험 단순화와 런타임 오류 제거를 위해 타입 안전성을 적용합니다. 따라서 제공되는 모든 컴포넌트는 기본적으로 타입 안전성이 보장됩니다.

generators