

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 빌드 사양 편집
<a name="edit-build-settings"></a>

Amplify 콘솔에서 빌드 사양(buildspec)을 편집하여 애플리케이션의 빌드 설정을 사용자 지정할 수 있습니다. 이러한 빌드 설정은 Git 리포지토리에 `amplify.yml` 파일이 저장된 브랜치를 제외하고 앱의 모든 브랜치에 적용됩니다.

**Amplify 콘솔에서 빌드 설정을 편집하려면**

1. 에 로그인 AWS Management Console 하고 [Amplify 콘솔](https://console.aws.amazon.com/amplify/)을 엽니다.

1. 빌드 설정을 편집하려는 앱을 선택합니다.

1. 탐색 창에서 **호스팅**을 선택한 다음 **빌드 설정**을 선택합니다.

1. **빌드 설정** 페이지의 **앱 빌드 사양** 섹션에서 **편집**을 선택합니다.

1. **빌드 사양 편집** 창에서 업데이트를 입력합니다.

1. **저장**을 선택합니다.

다음 항목에 설명된 예제를 사용하여 특정 시나리오에 대한 빌드 설정을 업데이트할 수 있습니다.

**Topics**
+ [스크립팅을 사용하여 브랜치별 빌드 설정](#branch-specific-build-settings)
+ [하위 폴더로 이동하기 위한 명령 설정](#navigating-to-a-subfolder)
+ [1세대 앱의 프론트엔드를 사용하여 백엔드 배포](#frontend-with-backend)
+ [출력 폴더 설정](#setting-the-output-folder)
+ [빌드의 일부로 패키지 설치](#installing-packages-as-part-of-your-build)
+ [프라이빗 npm 레지스트리 사용](#using-a-private-npm-registry)
+ [OS 패키지 설치](#installing-os-packages)
+ [모든 빌드에 대한 키-값 스토리지 설정](#key-value-storage-for-every-build)
+ [커밋을 위한 빌드 건너뛰기](#skip-build-for-a-commit)
+ [모든 커밋에서 자동 빌드 끄기](#disable-automatic-builds)
+ [diff 기반 프론트엔드 빌드 및 배포 구성](#enable-diff-deploy)
+ [1세대 앱을 위한 diff 기반 백엔드 빌드 구성](#enable-diff-backend)

## 스크립팅을 사용하여 브랜치별 빌드 설정
<a name="branch-specific-build-settings"></a>

배시 쉘 스크립팅을 사용하여 브랜치별 빌드 설정을 지정할 수 있습니다. 예를 들어 다음 스크립트는 시스템 환경 변수 *$AWS\_BRANCH*를 사용하여 브랜치 이름이 *main*인 경우 한 세트의 명령을 실행하고, 브랜치 이름이 *dev*인 경우 다른 세트의 명령을 실행합니다.

```
frontend:
  phases:
    build:
      commands:
        - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi
```

## 하위 폴더로 이동하기 위한 명령 설정
<a name="navigating-to-a-subfolder"></a>

모노레포의 경우 사용자는 빌드를 실행하기 위해 폴더로 연속적으로 `cd`할 수 있기를 원합니다. `cd` 명령을 실행한 후에는 빌드의 모든 스테이지에 적용되므로 별도의 단계에서 명령을 반복하지 않아도 됩니다.

```
version: 1
env:
  variables:
    key: value
frontend:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
```

## 1세대 앱의 프론트엔드를 사용하여 백엔드 배포
<a name="frontend-with-backend"></a>

**참고**  
이 섹션은 Amplify Gen 1 애플리케이션에만 적용됩니다. 1세대 백엔드는 Amplify Studio 및 Amplify 명령줄 인터페이스(CLI)를 사용하여 생성합니다.

`amplifyPush` 명령은 백엔드 배포에 도움을 제공하는 도우미 스크립트입니다. 아래의 빌드 설정은 현재 브랜치에 대해 배포할 올바른 백엔드 환경을 자동으로 결정합니다.

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    build:
      commands:
        - amplifyPush --simple
```

## 출력 폴더 설정
<a name="setting-the-output-folder"></a>

다음 빌드 설정에서는 출력 디렉터리를 퍼블릭 폴더로 설정합니다.

```
frontend:
  phases:
    commands:
      build:
        - yarn run build
  artifacts:
    baseDirectory: public
```

## 빌드의 일부로 패키지 설치
<a name="installing-packages-as-part-of-your-build"></a>

빌드하는 동안 `npm` 또는 `yarn` 명령을 사용하여 패키지를 설치할 수 있습니다.

```
frontend:
  phases:
    build:
      commands:
        - npm install -g <package>
        - <package> deploy
        - yarn run build
  artifacts:
    baseDirectory: public
```

## 프라이빗 npm 레지스트리 사용
<a name="using-a-private-npm-registry"></a>

빌드 설정에서 프라이빗 레지스트리에 대한 참조를 추가하거나 환경 변수로 추가할 수 있습니다.

```
build:
  phases:
    preBuild:
      commands:
        - npm config set <key> <value>
        - npm config set registry https://registry.npmjs.org
        - npm config set always-auth true
        - npm config set email hello@amplifyapp.com
        - yarn install
```

## OS 패키지 설치
<a name="installing-os-packages"></a>

Amplify의 AL2023 이미지는 이름이 `amplify`인 권한이 없는 사용자를 사용하여 코드를 실행합니다. Amplify는 이 사용자에게 Linux `sudo` 명령을 사용하여 OS 명령을 실행할 수 있는 권한을 부여합니다. 누락된 종속성에 OS 패키지를 설치하려는 경우 `yum` 및 `rpm`과 같은 명령을 `sudo`와 함께 사용할 수 있습니다.

다음 예제 빌드 섹션에서는 `sudo` 명령을 사용하여 OS 패키지를 설치하기 위한 구문을 보여줍니다.

```
build:
  phases:
    preBuild:
      commands:
        - sudo yum install -y <package>
```

## 모든 빌드에 대한 키-값 스토리지 설정
<a name="key-value-storage-for-every-build"></a>

`envCache`은(는) 빌드 시 키-값 스토리지를 제공합니다 `envCache`에 저장된 값은 빌드 중에만 수정할 수 있으며 다음 빌드에서 재사용할 수 있습니다. `envCache`를 사용하여 배포된 환경에 정보를 저장하고 연속 빌드에서 빌드 컨테이너에 사용할 수 있습니다. `envCache`에 저장된 값과 달리, 빌드 중 환경 변수의 변경 사항은 미래 빌드에 지속되지 않습니다.

사용 예:

```
envCache --set <key> <value>
envCache --get <key>
```

## 커밋을 위한 빌드 건너뛰기
<a name="skip-build-for-a-commit"></a>

특정 커밋에서 자동 빌드를 건너뛰려면 커밋 메시지 끝에 **[skip-cd]** 텍스트를 포함합니다.

## 모든 커밋에서 자동 빌드 끄기
<a name="disable-automatic-builds"></a>

모든 코드 커밋에 대해 자동 빌드를 끄도록 Amplify를 구성할 수 있습니다. 설정하려면 **앱 설정**, **브랜치 설정**을 선택한 다음 연결된 브랜치가 있는 **브랜치** 섹션을 찾습니다. 브랜치를 선택한 다음 **작업**, **자동 빌드 비활성화**를 선택합니다. 해당 브랜치에 대한 새 커밋은 더 이상 새 빌드를 트리거하지 않습니다.

## diff 기반 프론트엔드 빌드 및 배포 구성
<a name="enable-diff-deploy"></a>

diff 기반 프론트엔드 빌드를 사용하도록 Amplify를 구성할 수 있습니다. 활성화 시 각 빌드를 시작할 때 Amplify가 기본적으로 사용자의 `appRoot` 또는 `/src/` 폴더에서 diff 실행을 시도합니다. Amplify가 차이점을 발견하지 못하면 프론트엔드 빌드, 테스트(구성된 경우) 및 배포 단계를 건너뛰고 호스팅된 앱을 업데이트하지 않습니다.

**diff 기반 프론트엔드 빌드 및 배포를 구성하려면**

1. 에 로그인 AWS Management Console 하고 [Amplify 콘솔](https://console.aws.amazon.com/amplify/)을 엽니다.

1. diff 기반 프론트엔드 빌드를 구성하고 배포할 앱을 선택합니다.

1. 탐색 창에서 **호스팅**, **환경 변수**를 선택합니다.

1. **환경 변수** 섹션에서 **변수 관리**를 선택합니다.

1. 환경 변수를 구성하는 절차는 diff 기반 프론트엔드 빌드 및 배포의 활성화 여부에 따라 달라집니다.
   + diff 기반 프론트엔드 빌드 및 배포를 활성화하려면

     1. **변수 관리** 섹션의 **변수**에 `AMPLIFY_DIFF_DEPLOY`를 입력합니다.

     1. **값**에 `true`를 입력합니다.
   + diff 기반 프론트엔드 빌드 및 배포를 비활성화하려면

     1. 다음 중 하나를 수행하십시오.
       + **변수 관리** 섹션에서 `AMPLIFY_DIFF_DEPLOY`를 찾습니다. **값**에 `false`를 입력합니다.
       + `AMPLIFY_DIFF_DEPLOY` 환경 변수를 제거합니다.

1. **저장**을 선택합니다.

선택적으로 `AMPLIFY_DIFF_DEPLOY_ROOT` 환경 변수를 설정하여 기본 경로를 리포지토리의 루트와 관련된 경로(예: `dist`)로 재정의할 수 있습니다.

## 1세대 앱을 위한 diff 기반 백엔드 빌드 구성
<a name="enable-diff-backend"></a>

**참고**  
이 섹션은 Amplify Gen 1 애플리케이션에만 적용됩니다. Gen 1 백엔드는 Amplify Studio 및 Amplify 명령줄 인터페이스(CLI)를 사용하여 생성합니다.

`AMPLIFY_DIFF_BACKEND` 환경 변수를 사용하여 diff 기반 백엔드 빌드를 사용하도록 Amplify Hosting을 구성할 수 있습니다. diff 기반 백엔드 빌드를 활성화하면 각 빌드를 시작할 때 Amplify가 리포지토리의 `amplify` 폴더에서 diff 실행을 시도합니다. Amplify에서 차이점을 발견하지 못하면 백엔드 빌드 단계를 건너뛰고 백엔드 리소스를 업데이트하지 않습니다. 프로젝트의 리포지토리에 `amplify` 폴더가 없는 경우, Amplify는 `AMPLIFY_DIFF_BACKEND` 환경 변수 값을 무시합니다.

현재 백엔드 단계의 빌드 설정에 사용자 지정 명령이 지정되어 있는 경우, 조건부 백엔드 빌드는 작동하지 않습니다. 이러한 사용자 지정 명령을 실행하려면 앱의 `amplify.yml` 파일에 있는 빌드 설정의 프론트엔드 단계로 해당 명령을 이동해야 합니다.

**diff 기반 백엔드 빌드를 구성하려면**

1. 에 로그인 AWS Management Console 하고 [Amplify 콘솔](https://console.aws.amazon.com/amplify/)을 엽니다.

1. diff 기반 백엔드 빌드를 구성할 앱을 선택합니다.

1. 탐색 창에서 **호스팅**, **환경 변수**를 선택합니다.

1. **환경 변수** 섹션에서 **변수 관리**를 선택합니다.

1. 환경 변수를 구성하는 절차는 diff 기반 백엔드 빌드의 활성화 여부에 따라 달라집니다.
   + diff 기반 백엔드 빌드를 활성화하려면

     1. **변수 관리** 섹션의 **변수**에 `AMPLIFY_DIFF_BACKEND`를 입력합니다.

     1. **값**에 `true`를 입력합니다.
   + diff 기반 백엔드 빌드를 비활성화하려면

     1. 다음 중 하나를 수행하십시오.
       + **변수 관리** 섹션에서 `AMPLIFY_DIFF_BACKEND`를 찾습니다. **값**에 `false`를 입력합니다.
       + `AMPLIFY_DIFF_BACKEND` 환경 변수를 제거합니다.

1. **저장**을 선택합니다.