콘텐츠로 이동

빠른 시작 가이드

이 가이드는 AWS에서 프로젝트를 빠르게 구축하기 위해 @aws/nx-plugin을 설치하고 사용하는 기본 방법을 설명합니다.

진행 전 다음 전역 의존성이 필요합니다:

  • Git
  • Node >= 22 (버전 관리를 위해 NVM 사용을 권장합니다)
    • 설치 확인: node --version
  • PNPM >= 10 (Yarn >= 4, Bun >= 1, 또는 NPM >= 10 사용도 가능)
    • 설치 확인: pnpm --version, yarn --version, bun --version 또는 npm --version
  • UV >= 0.5.29
    1. Python 3.12 설치: uv python install 3.12.0
    2. 설치 확인: uv python list --only-installed
  • 애플리케이션 배포 대상 AWS 계정에 구성된 AWS Credentials

1단계: 새 Nx 워크스페이스 초기화

섹션 제목: “1단계: 새 Nx 워크스페이스 초기화”

원하는 패키지 매니저로 Nx 워크스페이스를 생성하려면 다음 명령어를 실행하세요:

Terminal window
npx create-nx-workspace@~21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip

완료 후 프로젝트 디렉토리로 이동합니다:

Terminal window
cd my-project

2단계: 생성기를 사용하여 프로젝트 스캐폴딩

섹션 제목: “2단계: 생성기를 사용하여 프로젝트 스캐폴딩”

이 빠른 시작 가이드에서는 tRPC API, React 웹사이트, Cognito 인증 및 CDK/Terraform 인프라를 추가합니다. 프로젝트 유형에 따라 원하는 생성기 조합을 선택하여 빠르게 프로젝트를 부트스트랩할 수 있습니다. 왼쪽 네비게이션 바의 가이드 에서 전체 옵션 목록을 확인하세요.

  1. 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
  2. VSCode에서 Nx 콘솔 열기
  3. 클릭 Generate (UI) "Common Nx Commands" 섹션에서
  4. 검색 @aws/nx-plugin - ts#trpc-api
  5. 필수 매개변수 입력
    • name: demo-api
    • auth: IAM
  6. 클릭 Generate

이 명령은 packages/demo-api 폴더 내에 API를 생성합니다.

  1. 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
  2. VSCode에서 Nx 콘솔 열기
  3. 클릭 Generate (UI) "Common Nx Commands" 섹션에서
  4. 검색 @aws/nx-plugin - ts#react-website
  5. 필수 매개변수 입력
    • name: demo-website
  6. 클릭 Generate

이 명령은 packages/demo-website에 새 React 웹사이트를 스캐폴딩합니다.

  1. 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
  2. VSCode에서 Nx 콘솔 열기
  3. 클릭 Generate (UI) "Common Nx Commands" 섹션에서
  4. 검색 @aws/nx-plugin - ts#react-website#auth
  5. 필수 매개변수 입력
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. 클릭 Generate

이 명령은 웹사이트에 Cognito 인증을 추가하기 위한 인프라와 React 코드를 설정합니다.

  1. 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
  2. VSCode에서 Nx 콘솔 열기
  3. 클릭 Generate (UI) "Common Nx Commands" 섹션에서
  4. 검색 @aws/nx-plugin - api-connection
  5. 필수 매개변수 입력
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. 클릭 Generate

이 명령은 웹사이트가 tRPC API를 호출할 수 있도록 필요한 프로바이더를 구성합니다.

선택한 IaC 제공자에 따라 인프라 프로젝트를 추가합니다.

  1. 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
  2. VSCode에서 Nx 콘솔 열기
  3. 클릭 Generate (UI) "Common Nx Commands" 섹션에서
  4. 검색 @aws/nx-plugin - ts#infra
  5. 필수 매개변수 입력
    • name: infra
  6. 클릭 Generate

이 명령은 AWS에 인프라를 배포하는 데 사용할 CDK 앱을 구성합니다.

3단계: 로컬에서 웹사이트 및 API 실행

섹션 제목: “3단계: 로컬에서 웹사이트 및 API 실행”

다음 명령어로 웹사이트와 연결된 API의 로컬 개발 서버를 시작합니다:

Terminal window
pnpm nx run demo-website:serve-local

웹사이트는 http://localhost:4200에서 확인할 수 있습니다.

웹사이트와 API의 변경 사항은 실시간으로 반영되며, 두 서버 모두 핫 리로드됩니다.

4단계: 클라우드 리소스 정의 및 AWS 배포

섹션 제목: “4단계: 클라우드 리소스 정의 및 AWS 배포”

packages/infra/src/stacks/application-stack.ts를 열고 다음 코드를 추가하세요:

import * as cdk from 'aws-cdk-lib';
import { DemoApi, DemoWebsite, UserIdentity } from ':my-project/common-constructs';
import { Construct } from 'constructs';
export class ApplicationStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const identity = new UserIdentity(this, 'identity');
const api = new DemoApi(this, 'api', {
integrations: DemoApi.defaultIntegrations(this).build(),
});
api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website');
}
}

이 코드는 풀스택 애플리케이션 배포에 필요한 모든 CDK 구성을 포함합니다.

프로젝트를 빌드하려면 다음 명령어를 실행하세요:

Terminal window
pnpm nx run-many --target build --all

인프라를 부트스트랩합니다:

Terminal window
pnpm nx run infra:bootstrap

프로젝트를 배포합니다:

Terminal window
pnpm nx run infra:deploy my-project-sandbox/*

5단계: 배포된 클라우드 리소스로 웹사이트 테스트

섹션 제목: “5단계: 배포된 클라우드 리소스로 웹사이트 테스트”
  1. runtime-config.json 파일 가져오기:

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. 로컬 웹사이트 서버 시작

    Terminal window
    pnpm nx run demo-website:serve

웹사이트는 http://localhost:4200에서 확인할 수 있으며, 배포된 API 및 인증 리소스를 가리킵니다.


축하합니다! 🎉 @aws/nx-plugin을 사용하여 풀스택 애플리케이션을 성공적으로 구축하고 배포했습니다!