

CDK AWS v2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.

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

# AWS CDK CLI 명령 참조
<a name="ref-cli-cmd"></a>

이 섹션에는 AWS Cloud Development Kit(AWS CDK) Command Line Interface(CLI)에 대한 명령 참조 정보가 있습니다. CDK CLI는 CDK Toolkit라고도 합니다.

## 사용법
<a name="ref-cli-cmd-usage"></a>

```
$ cdk <command> <arguments> <options>
```

## 명령
<a name="ref-cli-cmd-commands"></a><a name="ref-cli-cmd-commands-acknowledge"></a>

 ` acknowledge ack `   
문제 번호로 공지를 확인하고 다시 표시되지 않도록 숨깁니다.<a name="ref-cli-cmd-commands-bootstrap"></a>

 ` bootstrap `   
`CDKToolkit`라는 CDK 부트스트랩 스택을 AWS 환경에 배포하여 CDK 배포를 위한 AWS 환경을 준비합니다.<a name="ref-cli-cmd-commands-context"></a>

 ` context `   
CDK 애플리케이션의 캐시된 컨텍스트 값을 관리합니다.<a name="ref-cli-cmd-commands-deploy"></a>

 ` deploy `   
AWS 환경에 CDK 스택을 하나 이상 배포합니다.<a name="ref-cli-cmd-commands-destroy"></a>

 ` destroy `   
AWS 환경에서 CDK 스택을 하나 이상 삭제합니다.<a name="ref-cli-cmd-commands-diff"></a>

 ` diff `   
diff를 수행하여 CDK 스택 간의 인프라 변경 사항을 확인합니다.<a name="ref-cli-cmd-commands-docs"></a>

 ` docs doc `   
브라우저에서 CDK 설명서를 엽니다.<a name="ref-cli-cmd-commands-doctor"></a>

 ` doctor `   
로컬 CDK 프로젝트와 개발 환경에 대한 유용한 정보를 검사하고 표시합니다.<a name="ref-cli-cmd-commands-drift"></a>

 ` drift `   
CDK를 사용하여 정의, 관리 및 배포하는 리소스의 구성 드리프트를 감지합니다.<a name="ref-cli-cmd-commands-flags"></a>

 ` flags `   
CDK CLI에 대한 기능 플래그 구성을 확인하고 수정합니다.<a name="ref-cli-cmd-commands-import"></a>

 ` import `   
AWS CloudFormation 리소스 가져오기를 사용하여 기존 AWS 리소스를 CDK 스택으로 가져옵니다.<a name="ref-cli-cmd-commands-init"></a>

 ` init `   
템플릿에서 새 CDK 프로젝트를 생성합니다.<a name="ref-cli-cmd-commands-list"></a>

 ` list, ls `   
CDK 앱의 모든 CDK 스택과 해당 종속성을 나열합니다.<a name="ref-cli-cmd-commands-metadata"></a>

 ` metadata `   
CDK 스택과 연결된 메타데이터를 표시합니다.<a name="ref-cli-cmd-commands-migrate"></a>

 ` migrate `   
AWS 리소스, AWS CloudFormation 스택 및 AWS CloudFormation 템플릿을 새 프로젝트로 마이그레이션합니다.<a name="ref-cli-cmd-commands-notices"></a>

 ` notices `   
CDK 애플리케이션에 대한 공지를 표시합니다.<a name="ref-cli-cmd-commands-refactor"></a>

 ` refactor `   
CDK 애플리케이션에서 코드를 리팩터링할 때 배포된 리소스를 보존합니다.<a name="ref-cli-cmd-commands-synthesize"></a>

 ` synthesize, synth `   
CDK 앱을 동기화하여 각 스택에 대한 AWS CloudFormation 템플릿을 포함한 클라우드 어셈블리를 생성합니다.<a name="ref-cli-cmd-commands-watch"></a>

 ` watch `   
로컬 CDK 프로젝트를 지속적으로 감시하여 배포와 핫스왑을 수행할 변경 사항이 있는지 확인합니다.

## 글로벌 옵션
<a name="ref-cli-cmd-options"></a>

다음 옵션은 모든 CDK CLI 명령과 호환됩니다.<a name="ref-cli-cmd-options-app"></a>

 `--app, -a <STRING>`   
앱 또는 클라우드 어셈블리 디렉터리를 실행하기 위한 명령을 제공합니다.  
 *필수 항목 여부*: 예<a name="ref-cli-cmd-options-asset-metadata"></a>

 `--asset-metadata <BOOLEAN>`   
자산을 사용하는 리소스에 대한 `aws:asset:*` AWS CloudFormation 메타데이터를 포함합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `true` <a name="ref-cli-cmd-options-build"></a>

 `--build <STRING>`   
사전 합성 빌드를 실행하기 위한 명령입니다.  
 *필수 항목 여부*: 아니요<a name="ref-cli-cmd-options-ca-bundle-path"></a>

 `--ca-bundle-path <STRING>`   
HTTPS 요청을 검증할 때 사용할 CA 인증서의 경로입니다.  
이 옵션이 제공되지 않으면 CDK CLI가 `AWS_CA_BUNDLE` 환경 변수에서 읽습니다.  
 *필수 항목 여부*: 예<a name="ref-cli-cmd-options-ci"></a>

 `--ci <BOOLEAN>`   
CDK CLI 명령이 지속적 통합(CI) 환경에서 실행되고 있음을 나타냅니다.  
이 옵션은 CI 파이프라인에서 일반적으로 사용되는 자동화 작업에 더 적합하도록 CDK CLI의 동작을 수정합니다.  
이 옵션을 제공하면 로그가 `stderr` 대신 `stdout`으로 전송됩니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-context"></a>

 `--context, -c <ARRAY>`   
컨텍스트 문자열 파라미터를 키 값 페어로 추가합니다.<a name="ref-cli-cmd-options-debug"></a>

 `--debug <BOOLEAN>`   
세부 디버깅 정보를 활성화합니다. 이 옵션은 CDK CLI가 백그라운드에서 수행하는 작업에 대한 훨씬 더 자세한 정보를 포함하는 자세한 출력을 생성합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-ec2creds"></a>

 `--ec2creds, -i <BOOLEAN>`   
CDK CLI가 Amazon EC2 인스턴스 자격 증명을 가져오도록 강제합니다.  
기본적으로 CDK CLI는 Amazon EC2 인스턴스 상태를 추측합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-help"></a>

 `--help, -h <BOOLEAN>`   
CDK CLI에 대한 명령 참조 정보를 표시합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-ignore-errors"></a>

 `--ignore-errors <BOOLEAN>`   
유효하지 않은 출력을 생성할 가능성이 있는 합성 오류는 무시합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-json"></a>

 `--json, -j <BOOLEAN>`   
표준 출력(`stdout`)에 출력되는 AWS CloudFormation 템플릿에는 YAML 대신 JSON을 사용합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-lookups"></a>

 `--lookups <BOOLEAN>`   
컨텍스트 조회를 수행합니다.  
이 값이 `false`이고 컨텍스트 조회를 수행해야 하는 경우 합성이 실패합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `true` <a name="ref-cli-cmd-options-no-color"></a>

 `--no-color <BOOLEAN>`   
콘솔 출력에서 색상과 기타 스타일링을 제거합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-notices"></a>

 `--notices <BOOLEAN>`   
관련 공지를 표시합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-output"></a>

 `--output, -o <STRING>`   
합성된 클라우드 어셈블리를 출력할 디렉터리를 지정합니다.  
 *필수 항목 여부*: 예  
 *기본 값*: `cdk.out` <a name="ref-cli-cmd-options-path-metadata"></a>

 `--path-metadata <BOOLEAN>`   
각 리소스에 대한 `aws::cdk::path` AWS CloudFormation 메타데이터를 포함합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `true` <a name="ref-cli-cmd-options-plugin"></a>

 `--plugin, -p <ARRAY>`   
CDK 기능을 확장하는 노드 패키지의 이름 또는 경로입니다. 이 옵션은 단일 명령에서 여러 번 제공할 수 있습니다.  
프로젝트의 `cdk.json` 파일이나 로컬 개발 시스템의 `~/.cdk.json`에서 이 옵션을 구성할 수 있습니다.  

```
{
   // ...
   "plugin": [
      "module_1",
      "module_2"
   ],
   // ...
}
```
 *필수 항목 여부*: 아니요<a name="ref-cli-cmd-options-profile"></a>

 `--profile <STRING>`   
CDK CLI와 함께 사용할 AWS 환경 정보가 포함된 AWS 프로파일의 이름을 지정합니다.  
 *필수 항목 여부*: 예<a name="ref-cli-cmd-options-proxy"></a>

 `--proxy <STRING>`   
표시된 프록시를 사용합니다.  
이 옵션이 제공되지 않으면 CDK CLI가 `HTTPS_PROXY` 환경 변수에서 읽습니다.  
 *필수 항목 여부*: 예  
 *기본값*: `HTTPS_PROXY` 환경 변수에서 읽습니다.<a name="ref-cli-cmd-options-role-arn"></a>

 `--role-arn, -r <STRING>`   
CDK CLI가 AWS CloudFormation과 상호 작용할 때 수임할 IAM 역할의 ARN입니다.  
 *필수 항목 여부*: 아니요<a name="ref-cli-cmd-options-staging"></a>

 `--staging <BOOLEAN>`   
자산을 출력 디렉터리에 복사합니다.  
출력 디렉터리에 자산이 복사되지 않도록 `false`를 지정합니다. 이렇게 하면 AWS SAM CLI가 로컬 디버깅을 수행할 때 원본 소스 파일을 참조할 수 있습니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `true` <a name="ref-cli-cmd-options-strict"></a>

 `--strict <BOOLEAN>`   
경고가 포함된 스택을 생성하지 않습니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-trace"></a>

 `--trace <BOOLEAN>`   
스택 경고에 대한 트레이스를 출력합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-verbose"></a>

 `--verbose, -v <COUNT>`   
디버그 로그를 표시합니다. 이 옵션을 여러 번 지정하여 상세 수준을 높일 수 있습니다.  
 *필수 항목 여부*: 아니요<a name="ref-cli-cmd-options-version"></a>

 `--version <BOOLEAN>`   
CDK CLI 버전 번호를 표시합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `false` <a name="ref-cli-cmd-options-version-reporting"></a>

 `--version-reporting <BOOLEAN>`   
합성된 AWS CloudFormation 템플릿에 ` AWS::CDK::Metadata` 리소스를 포함합니다.  
 *필수 항목 여부*: 아니요  
 *기본 값*: `true` 

## 옵션 제공 및 구성
<a name="ref-cli-cmd-configure"></a>

명령줄 인수를 통해 옵션을 전달할 수 있습니다. 대부분 옵션의 경우 `cdk.json` 구성 파일에서 구성할 수 있습니다. 여러 구성 소스를 사용하는 경우 CDK CLI는 다음 우선순위를 따릅니다.

1.  **명령줄 값** - 명령줄에 제공된 모든 옵션은 `cdk.json` 파일에 구성된 옵션을 재정의합니다.

1.  **프로젝트 구성 파일** - CDK 프로젝트의 디렉터리에 있는 `cdk.json` 파일입니다.

1.  **사용자 구성 파일** - 로컬 시스템의 `~/.cdk.json`에 있는 `cdk.json` 파일입니다.

## 명령줄에서 옵션 전달
<a name="ref-cli-cmd-pass"></a><a name="ref-cli-cmd-pass-bool"></a>

 **부울 값 전달**   
부울 값을 수락하는 옵션에 대해 다음과 같은 방법으로 지정할 수 있습니다.  
+ `true` 및 `false` 값 사용 - 명령과 함께 부울 값을 제공합니다. 다음은 예제입니다.

  ```
  $ cdk deploy --watch=true
  $ cdk deploy --watch=false
  ```
+ 옵션의 대응 항목 제공 - `false` 값을 지정하려면 `no`를 추가하여 옵션 이름을 수정합니다. 다음은 예제입니다.

  ```
  $ cdk deploy --watch
  $ cdk deploy --no-watch
  ```
+ 기본값이 `true` 또는 `false`인 옵션의 경우 기본값에서 변경하지 않는 한 옵션을 제공할 필요가 없습니다.

# `cdk acknowledge`
<a name="ref-cli-cmd-ack"></a>

문제 번호로 공지를 확인하고 다시 표시되지 않도록 숨깁니다.

이는 이미 확인되었거나 사용에게 적용되지 않는 공지를 숨기는 데 유용합니다.

확인은 CDK 프로젝트 수준에서 저장됩니다. 한 CDK 프로젝트에서 공지를 확인하는 경우 다른 프로젝트에서는 공지가 확인될 때까지 계속 표시됩니다.

## 사용법
<a name="ref-cli-cmd-ack-usage"></a>

```
$ cdk acknowledge <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-ack-args"></a><a name="ref-cli-cmd-ack-args-notice-id"></a>

 **공지 ID**   
공지의 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-ack-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-ack-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk acknowledge` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-ack-examples"></a>

### 다른 CDK CLI 명령을 실행할 때 표시되는 공지 확인 및 숨기기
<a name="ref-cli-cmd-ack-examples-1"></a>

```
$ cdk deploy
... # Normal output of the command

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: If a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: <1.126.0.

        More information at: https://github.com/aws/aws-cdk/issues/16603


17061   Error when building EKS cluster with monocdk import

        Overview: When using monocdk/aws-eks to build a stack containing
                  an EKS cluster, error is thrown about missing
                  lambda-layer-node-proxy-agent/layer/package.json.

        Affected versions: >=1.126.0 <=1.130.0.

        More information at: https://github.com/aws/aws-cdk/issues/17061

$ cdk acknowledge 16603
```

# `cdk bootstrap`
<a name="ref-cli-cmd-bootstrap"></a>

`CDKToolkit`이라는 CDK 부트스트랩 스택을 AWS 환경에 배포하여 CDK 배포를 위한 AWS 환경을 준비합니다.

부트스트랩 스택은 AWS 환경의 Amazon S3 버킷과 Amazon ECR 리포지토리를 프로비저닝하는 CloudFormation 스택입니다. AWS CDK CLI는 이러한 리소스를 사용하여 배포 중 합성된 템플릿과 관련 자산을 저장합니다.

## 사용법
<a name="ref-cli-cmd-bootstrap-usage"></a>

```
$ cdk bootstrap <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-bootstrap-args"></a><a name="ref-cli-cmd-bootstrap-args-env"></a>

 **AWS 환경**   
부트스트랩 스택을 배포할 대상 AWS 환경입니다(`aws://<account-id>/<region>` 형식).  
예시: `aws://123456789012/us-east-1`   
여러 환경에 부트스트랩 스택을 배포하기 위해 단일 명령에서 이 인수를 여러 번 제공할 수 있습니다.  
기본적으로 CDK CLI는 CDK 앱에서 참조되는 모든 환경을 부트스트래핑하거나 기본 소스에서 환경을 결정합니다. 이는 환경 변수에서 `--profile` 옵션을 사용하여 지정한 환경 또는 기본 AWS CLI 소스일 수 있습니다.

## 옵션
<a name="ref-cli-cmd-bootstrap-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-bootstrap-options-bootstrap-bucket-name"></a>

 `--bootstrap-bucket-name, --toolkit-bucket-name, -b <STRING>`   
CDK CLI에서 사용할 Amazon S3 버킷의 이름입니다. 이 버킷은 생성되므로 현재 존재하지 않아야 합니다.  
Amazon S3 버킷의 기본 이름을 재정의하려면 이 옵션을 제공합니다.  
이 옵션을 사용하면 합성을 사용자 지정해야 할 수 있습니다. 자세한 내용은 [CDK 스택 합성 사용자 지정](configure-synth.md#bootstrapping-custom-synth)을 참조하세요.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-bootstrap-customer-key"></a>

 `--bootstrap-customer-key <BOOLEAN>`   
부트스트랩 버킷에 대한 고객 마스터 키(CMK)를 생성합니다(요금은 부과되지만 권한을 사용자 지정할 수 있으며, 최신 부트스트래핑만 해당).  
이 옵션은 `--bootstrap-kms-key-id`과 호환되지 않습니다.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-bootstrap-kms-key-id"></a>

 `--bootstrap-kms-key-id <STRING>`   
`SSE-KMS` 암호화에 사용할 AWS KMS 마스터 키 ID입니다.  
Amazon S3 버킷을 암호화하는 데 사용되는 기본 AWS KMS 키를 재정의하려면 이 옵션을 제공하세요.  
이 옵션은 `--bootstrap-customer-key`과 호환되지 않습니다.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-cloudformation-execution-policies"></a>

 `--cloudformation-execution-policies <ARRAY>`   
스택을 배포하는 동안 AWS CloudFormation이 수임하는 배포 역할에 연결해야 하는 관리형 IAM 정책 ARN입니다.  
기본적으로 스택은 `AdministratorAccess` 정책을 사용하여 전체 관리자 권한으로 배포됩니다.  
단일 명령에서 이 옵션을 여러 번 제공할 수 있습니다. 여러 개의 ARN을 쉼표로 구분하여 단일 문자열로 제공할 수도 있습니다. 다음은 예제입니다.  

```
$ cdk bootstrap --cloudformation-execution-policies "arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"
```
배포 실패를 방지하려면 지정한 정책이 부트스트래핑 중인 환경에 수행할 모든 배포에 충분한지 확인하세요.  
이 옵션은 최신 부트스트래핑에만 적용됩니다.  
최신 부트스트랩 템플릿은 `--cloudformation-execution-policies`에 포함된 권한을 `--trust` 목록에 있는 모든 AWS 계정에 효과적으로 부여합니다. 기본적으로 부트스트래핑된 계정의 모든 리소스에 대한 읽기 및 쓰기 권한이 확장됩니다. 익숙한 정책과 신뢰할 수 있는 계정으로 [부트스트래핑 스택을 구성](bootstrapping-customizing.md)하세요.
 *기본 값*: `[]` <a name="ref-cli-cmd-bootstrap-options-custom-permissions-boundary"></a>

 `--custom-permissions-boundary, -cpb <STRING>`   
사용할 권한 경계의 이름을 지정합니다.  
이 옵션은 `--example-permissions-boundary`과 호환되지 않습니다.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-example-permissions-boundary"></a>

 `--example-permissions-boundary, -epb <BOOLEAN>`   
AWS CDK에서 제공하는 예제 권한 경계를 사용합니다.  
이 옵션은 `--custom-permissions-boundary`과 호환되지 않습니다.  
CDK 제공 권한 경계 정책은 예로 봐야 합니다. 콘텐츠를 편집하고 기능을 테스트하는 경우 예제 정책을 참조하세요. 아직 정책이 없는 경우 실제 배포를 위한 새 정책으로 변환합니다. 문제는 드리프트를 방지하는 것입니다. 권한 경계가 유지되고 이름 지정을 포함한 전용 규칙이 있을 가능성이 높습니다.  
권한 경계 사용을 포함한 권한 구성에 대한 자세한 내용은 [Security and Safety Dev Guide](https://github.com/aws/aws-cdk/wiki/Security-And-Safety-Dev-Guide)를 참조하세요.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-execute"></a>

 `--execute <BOOLEAN>`   
변경 세트를 실행할지 여부를 구성합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-bootstrap-options-force"></a>

 `--force, -f <BOOLEAN>`   
부트스트랩 템플릿 버전이 다운그레이드되더라도 항상 부트스트래핑합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-bootstrap-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk bootstrap` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-bootstrap-options-previous-parameters"></a>

 `--previous-parameters <BOOLEAN>`   
기존 파라미터에 이전 값을 사용합니다.  
부트스트랩 템플릿이 파라미터 세트와 함께 배포되면 이 옵션을 `false`로 설정하여 향후 배포 시 파라미터를 변경해야 합니다. `false`이면 이전에 제공된 파라미터를 모두 다시 제공해야 합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-bootstrap-options-public-access-block-configuration"></a>

 `--public-access-block-configuration <BOOLEAN>`   
CDK CLI에서 생성하고 사용하는 Amazon S3 버킷에 대한 퍼블릭 액세스 구성을 차단합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-bootstrap-options-qualifier"></a>

 `--qualifier <STRING>`   
부트스트랩 스택마다 고유한 9자리 문자열 값입니다. 이 값은 부트스트랩 스택에 있는 리소스의 물리적 ID에 추가됩니다.  
한정자를 제공하면 동일한 환경에서 여러 부트스트랩 스택을 프로비저닝할 때 리소스 이름 충돌을 방지할 수 있습니다.  
한정자를 변경하면 CDK 앱이 스택 신디사이저에 변경된 값을 전달해야 합니다. 자세한 내용은 [CDK 스택 합성 사용자 지정](configure-synth.md#bootstrapping-custom-synth)을 참조하세요.  
 *기본값*:`hnb659fds` 이 값은 중요하지 않습니다.<a name="ref-cli-cmd-bootstrap-options-show-template"></a>

 `--show-template <BOOLEAN>`   
부트스트래핑 대신 표준 출력(`stdout`)에 현재 부트스트랩 템플릿을 출력합니다. 그러면 필요에 따라 템플릿을 복사하고 사용자 지정할 수 있습니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-bootstrap-options-tags"></a>

 `--tags, -t <ARRAY>`   
`KEY=VALUE` 형식으로 부트스트랩 스택에 추가할 태그입니다.  
 *기본 값*: `[]` <a name="ref-cli-cmd-bootstrap-options-template"></a>

 `--template <STRING>`   
기본 제공 파일 대신 지정된 파일의 템플릿을 사용합니다.<a name="ref-cli-cmd-bootstrap-options-termination-protection"></a>

 `--termination-protection <BOOLEAN>`   
부트스트랩 스택에서 AWS CloudFormation 종료 방지를 전환합니다.  
`true`이면 종료 방지가 활성화됩니다. 이렇게 하면 부트스트랩 스택이 실수로 삭제되는 것을 방지할 수 있습니다.  
종료 방지에 대해 자세히 알아보려면 *AWS CloudFormation 사용 설명서*의 [스택 삭제 방지](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)를 참조하세요.  
 *기본값*: 정의되지 않음<a name="ref-cli-cmd-bootstrap-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
생성할 부트스트랩 스택의 이름입니다.  
기본적으로 `cdk bootstrap`은 지정된 AWS 환경에 `CDKToolkit`라는 스택을 배포합니다. 부트스트랩 스택에 다른 이름을 지정하려면 이 옵션을 사용합니다.  
CDK CLI는 이 값을 사용하여 부트스트랩 스택 버전을 확인합니다.  
 *기본 값*: `CDKToolkit`   
 *필수 항목 여부*: 예<a name="ref-cli-cmd-bootstrap-options-trust"></a>

 `--trust <ARRAY>`   
이 환경으로 배포를 수행하는 데 있어 신뢰할 수 있어야 하는 AWS 계정 ID입니다.  
부트스트래핑을 수행하는 계정은 항상 신뢰할 수 있습니다.  
이 옵션을 사용하려면 `--cloudformation-execution-policies`도 제공해야 합니다.  
단일 명령에서 이 옵션을 여러 번 제공할 수 있습니다.  
이 옵션은 최신 부트스트래핑에만 적용됩니다.  
기존 부트스트랩 스택에 신뢰할 수 있는 계정을 추가하려면 이전에 제공했을 수 있는 계정을 포함하여 신뢰할 모든 계정을 지정해야 합니다. 신뢰할 새 계정만 제공하는 경우 이전의 신뢰할 수 있는 계정이 제거됩니다.  
다음은 두 계정을 신뢰하는 예입니다.  

```
$ cdk bootstrap aws://123456789012/us-west-2 --trust 234567890123 --trust 987654321098 --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess
 ⏳  Bootstrapping environment aws://123456789012/us-west-2...
Trusted accounts for deployment: 234567890123, 987654321098
Trusted accounts for lookup: (none)
Execution policies: arn:aws:iam::aws:policy/AdministratorAccess
CDKToolkit: creating CloudFormation changeset...
 ✅  Environment aws://123456789012/us-west-2 bootstrapped.
```
최신 부트스트랩 템플릿은 `--cloudformation-execution-policies`에 포함된 권한을 `--trust` 목록에 있는 모든 AWS 계정에 효과적으로 부여합니다. 기본적으로 부트스트래핑된 계정의 모든 리소스에 대한 읽기 및 쓰기 권한이 확장됩니다. 익숙한 정책과 신뢰할 수 있는 계정으로 [부트스트래핑 스택을 구성](bootstrapping-customizing.md)하세요.
 *기본 값*: `[]` <a name="ref-cli-cmd-bootstrap-options-trust-for-lookup"></a>

 `--trust-for-lookup <ARRAY>`   
이 환경에서 값을 조회하는 데 있어 신뢰할 수 있어야 하는 AWS 계정 ID입니다.  
계정에 실제로 스택을 직접 배포할 권한을 부여하지 않고 환경에 배포될 스택을 합성할 수 있는 권한을 부여하려면 이 옵션을 사용합니다.  
단일 명령에서 이 옵션을 여러 번 제공할 수 있습니다.  
이 옵션은 최신 부트스트래핑에만 적용됩니다.  
 *기본 값*: `[]` 

## 예제
<a name="ref-cli-cmd-bootstrap-examples"></a>

### prod 프로파일에 지정된 AWS 환경 부트스트랩
<a name="ref-cli-cmd-bootstrap-examples-1"></a>

```
$ cdk bootstrap --profile prod
```

### foo 및 bar 환경에 부트스트랩 스택 배포
<a name="ref-cli-cmd-bootstrap-examples-2"></a>

```
$ cdk bootstrap --app='node bin/main.js' foo bar
```

### 사용자 지정을 위해 부트스트랩 템플릿 내보내기
<a name="ref-cli-cmd-bootstrap-examples-3"></a>

부트스트랩 템플릿으로 충족되지 않는 특정 요구 사항이 있는 경우 필요에 맞게 템플릿을 사용자 지정할 수 있습니다.

AWS CloudFormation을 사용하여 부트스트랩 템플릿을 내보내고, 수정하고, 배포할 수 있습니다. 다음은 기존 템플릿을 내보내는 예입니다.

```
$ cdk bootstrap --show-template > bootstrap-template.yaml
```

CDK CLI에 사용자 지정 템플릿을 사용하도록 지시할 수도 있습니다. 다음은 예제입니다.

```
$ cdk bootstrap --template my-bootstrap-template.yaml
```

### 권한 경계로 부트스트래핑한 다음 해당 권한 경계 제거
<a name="ref-cli-cmd-bootstrap-examples-4"></a>

사용자 지정 권한 경계로 부트스트래핑하기 위해 다음을 실행합니다.

```
$ cdk bootstrap --custom-permissions-boundary my-permissions-boundary
```

권한 경계를 제거하기 위해 다음을 실행합니다.

```
$ cdk bootstrap --no-previous-parameters
```

### 한정자를 사용하여 개발 환경용으로 생성된 리소스 구분
<a name="ref-cli-cmd-bootstrap-examples-5"></a>

```
$ cdk bootstrap --qualifier dev2024
```

# `cdk context`
<a name="ref-cli-cmd-context"></a>

AWS CDK 애플리케이션의 캐시된 컨텍스트 값을 관리합니다.

 *컨텍스트*는 스택 합성 및 배포 방식에 영향을 미칠 수 있는 구성 및 환경 정보를 나타냅니다. `cdk context`를 사용하여 다음을 수행합니다.
+ 구성된 컨텍스트 값을 봅니다.
+ 컨텍스트 값을 설정하고 관리합니다.
+ 컨텍스트 값을 제거합니다.

## 사용법
<a name="ref-cli-cmd-context-usage"></a>

```
$ cdk context <options>
```

## 옵션
<a name="ref-cli-cmd-context-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-context-options-clear"></a>

 `--clear <BOOLEAN>`   
모든 컨텍스트를 지웁니다.<a name="ref-cli-cmd-context-options-force"></a>

 `--force, -f <BOOLEAN>`   
키 누락 오류를 무시합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-context-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk context` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-context-options-reset"></a>

 `--reset, -e <STRING>`   
재설정할 컨텍스트 키 또는 해당 인덱스입니다.

# `cdk deploy`
<a name="ref-cli-cmd-deploy"></a>

AWS 환경에 AWS CDK 스택을 하나 이상 배포합니다.

배포하는 동안 CDK CLI는 AWS CloudFormation 콘솔에서 볼 수 있는 것과 유사한 진행률 표시기를 출력합니다.

AWS 환경이 부트스트랩되지 않은 경우 자산이 없고 합성 템플릿이 5만 1,200바이트 미만인 스택만 성공적으로 배포됩니다.

## 사용법
<a name="ref-cli-cmd-deploy-usage"></a>

```
$ cdk deploy <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-deploy-args"></a><a name="ref-cli-cmd-deploy-args-stack-name"></a>

 **CDK 스택 ID**   
배포할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-deploy-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-deploy-options-all"></a>

 `--all <BOOLEAN>`   
CDK 앱에 모든 스택을 배포합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-deploy-options-asset-parallelism"></a>

 `--asset-parallelism <BOOLEAN>`   
자산 빌드와 게시를 동시에 수행할지 여부를 지정합니다.<a name="ref-cli-cmd-deploy-options-asset-prebuild"></a>

 `--asset-prebuild <BOOLEAN>`   
첫 번째 스택을 배포하기 전에 모든 자산을 빌드할지 여부를 지정합니다. 이 옵션은 Docker 빌드 실패 시 유용합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-deploy-options-build-exclude"></a>

 `--build-exclude, -E <ARRAY>`   
지정된 ID로 자산을 다시 빌드하지 않습니다.  
이 옵션은 단일 명령에서 여러 번 지정할 수 있습니다.  
 *기본 값*: `[]` <a name="ref-cli-cmd-deploy-options-change-set-name"></a>

 `--change-set-name <STRING>`   
생성할 AWS CloudFormation 변경 세트의 이름입니다.  
이 옵션은 `--method='direct'`과 호환되지 않습니다.<a name="ref-cli-cmd-deploy-options-concurrency"></a>

 `--concurrency <NUMBER>`   
스택 간 종속성을 고려하면서 여러 스택을 병렬로 배포합니다. 배포 속도를 높이려면 이 옵션을 사용합니다. 여전히 AWS CloudFormation 및 기타 AWS 계정 속도 제한을 고려해야 합니다.  
수행할 최대 동시 배포 수(종속성 허용)를 지정하려면 숫자를 제공합니다.  
 *기본 값*: `1` <a name="ref-cli-cmd-deploy-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
요청된 스택만 배포하고 종속성은 포함하지 않습니다.<a name="ref-cli-cmd-deploy-options-force"></a>

 `--force, -f <BOOLEAN>`   
기존 스택을 업데이트하기 위해 배포하는 경우 CDK CLI는 배포된 스택의 템플릿과 태그를 배포될 스택과 비교합니다. 변경 사항이 탐지되지 않으면 CDK CLI는 배포를 건너뜁니다.  
이 동작을 재정의하고 항상 스택을 배포하려면 변경 사항이 탐지되지 않더라도 이 옵션을 사용합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-deploy-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk deploy` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-deploy-options-hotswap"></a>

 `--hotswap <BOOLEAN>`   
더 빠른 개발을 위한 핫스왑 배포입니다. 이 옵션은 가능하다면 더 빠른 핫스왑 배포를 시도합니다. 예를 들어 CDK 앱에서 Lambda 함수의 코드를 수정하면 CDK CLI는 CloudFormation 배포를 수행하는 대신 서비스 API를 통해 리소스를 직접 업데이트합니다.  
CDK CLI가 핫스왑을 지원하지 않는 변경 사항을 탐지하면 해당 변경 사항은 무시되고 메시지가 표시됩니다. 전체 CloudFormation 배포를 폴백으로 수행하려면 대신 `--hotswap-fallback`을 사용합니다.  
CDK CLI는 현재 AWS 자격 증명을 사용하여 API 직접 호출을 수행합니다. 그리고 `@aws-cdk/core:newStyleStackSynthesis` 기능 플래그가 `true`로 설정된 경우에도 부트스트랩 스택에서 역할을 수임하지 않습니다. 이러한 역할에는 CloudFormation을 사용하지 않고 AWS 리소스를 직접 업데이트하는 데 필요한 권한이 없습니다. 따라서 자격 증명이 핫스왑 배포를 수행하는 스택과 동일한 AWS 계정에 대한 것인지, 리소스를 업데이트하는 데 필요한 IAM 권한이 있는지 확인해야 합니다.  
핫스와핑은 현재 다음 변경 사항에 대해 지원됩니다.  
+ Lambda 함수의 코드 자산(Docker 이미지 및 인라인 코드 포함), 태그 변경 사항 및 구성 변경 사항(설명 및 환경 변수만 지원됨).
+ Lambda 버전 및 별칭 변경 사항
+ AWS Step Functions 상태 시스템의 정의 변경 사항.
+ Amazon ECS 서비스의 컨테이너 자산 변경 사항
+ Amazon S3 버킷 배포의 웹 사이트 자산 변경 사항
+ AWS CodeBuild 프로젝트의 소스 및 환경 변경 사항.
+ AWS AppSync 리졸버 및 함수에 대한 VTL 매핑 템플릿 변경 사항.
+ AWS AppSync GraphQL API에 대한 스키마 변경 사항.
특정 CloudFormation 내장 함수 사용은 핫스와핑된 배포의 일부로 지원됩니다. 다음이 포함됩니다.  
+  `Ref` 
+  `Fn::GetAtt` - 부분적으로만 지원됩니다. 지원되는 리소스와 속성은 [이 구현](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk/lib/api/evaluate-cloudformation-template.ts#L477-L492)을 참조하세요.
+  `Fn::ImportValue` 
+  `Fn::Join` 
+  `Fn::Select` 
+  `Fn::Split` 
+  `Fn::Sub` 
이 옵션은 중첩된 스택과도 호환됩니다.  
+ 이 옵션은 배포 속도를 높이기 위해 CloudFormation 스택에 의도적으로 드리프트를 도입합니다. 이러한 이유로 개발 목적으로만 사용하세요. 프로덕션 배포에는 이 옵션을 사용하지 마세요.
+ 이 옵션은 실험적이므로 향후 큰 변화가 있을 수 있습니다.
+ 특정 파라미터의 기본값은 핫스왑 파라미터와 다를 수 있습니다. 예를 들어 Amazon ECS 서비스의 최소 정상 비율은 현재 `0`으로 설정됩니다. 이 경우 그에 따라 소스를 검토하세요.
 *기본 값*: `false` <a name="ref-cli-cmd-deploy-options-hotswap-fallback"></a>

 `--hotswap-fallback <BOOLEAN>`   
이 옵션은 `--hotswap`과 유사합니다. 차이점은 `--hotswap-fallback`은 전체 CloudFormation 배포가 필요한 변경 사항이 탐지되면 이를 수행하기 위해 폴백된다는 것입니다.  
이 옵션에 대한 자세한 내용은 `--hotswap` 섹션을 참조하세요.  
 *기본 값*: `false` <a name="ref-cli-cmd-deploy-options-ignore-no-stacks"></a>

 `--ignore-no-stacks <BOOLEAN>`   
CDK 앱에 스택이 없더라도 배포를 수행합니다.  
이 옵션은 `dev`와 `prod` 등 여러 환경을 갖춘 앱이 있는 경우에 유용합니다. 개발을 시작할 때 프로덕션 앱에 리소스가 없거나 리소스가 주석 처리되어 있을 수 있습니다. 이로 인해 앱에 스택이 없다는 메시지와 함께 배포 오류가 발생합니다. `--ignore-no-stacks`를 사용하여 이 오류를 우회합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-deploy-options-import-existing-resources"></a>

 `--import-existing-resources <BOOLEAN>`   
AWS 계정에서 관리되지 않는 기존 AWS CloudFormation 리소스를 가져옵니다.  
이 옵션을 사용하면 동일한 계정의 기존 비관리형 리소스와 사용자 지정 이름이 동일한 합성된 AWS CloudFormation 템플릿의 리소스를 스택으로 가져옵니다.  
이 옵션을 사용하여 기존 리소스를 새 스택 또는 기존 스택으로 가져올 수 있습니다.  
동일한 `cdk deploy` 명령에서 기존 리소스를 가져오고 새 리소스를 배포할 수 있습니다.  
사용자 지정 이름에 대한 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [이름 유형](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)을 참조하세요.  
`ImportExistingResources` CloudFormation 파라미터에 대한 자세한 내용은 [AWS CloudFormation이 ChangeSets에 대한 새 파라미터로 리소스 가져오기 간소화](https://aws.amazon.com/about-aws/whats-new/2023/11/aws-cloudformation-import-parameter-changesets/)를 참조하세요.  
이 옵션 사용에 대한 자세한 내용은 *aws-cdk-cli GitHub 리포지토리*의 [기존 리소스 가져오기](https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#import-existing-resources)를 참조하세요.<a name="ref-cli-cmd-deploy-options-logs"></a>

 `--logs <BOOLEAN>`   
선택한 스택의 모든 리소스에서 발생한 모든 이벤트에 대한 표준 출력(`stdout`)에 Amazon CloudWatch 로그를 표시합니다.  
이 옵션은 `--watch`와만 호환됩니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-deploy-options-method"></a>

 `--method, -m <STRING>`   
배포를 수행하도록 메서드를 구성합니다.  
+  `change-set` - 기본 메서드입니다. CDK CLI는 배포될 변경 사항으로 CloudFormation 변경 세트를 생성한 다음 배포를 수행합니다.
+  `direct` – 변경 세트를 생성하지 않습니다. 대신 변경 사항을 즉시 적용합니다. 이는 일반적으로 변경 세트를 생성하는 것보다 빠르지만 CLI 출력에서 배포 진행 상황 세부 정보가 손실됩니다.
+  `prepare-change-set` - 변경 세트를 생성하지만 배포는 수행하지 않습니다. 이는 변경 세트를 검사할 외부 도구가 있거나 변경 세트에 대한 승인 프로세스가 있는 경우 유용합니다.
 *유효한 값*: `change-set`, `direct`, `prepare-change-set`   
 *기본 값*: `change-set` <a name="ref-cli-cmd-deploy-options-notification-arns"></a>

 `--notification-arns <ARRAY>`   
CloudFormation이 스택 관련 이벤트에 대해 알릴 Amazon SNS 주제의 ARN입니다.<a name="ref-cli-cmd-deploy-options-outputs-file"></a>

 `--outputs-file, -O <STRING>`   
배포의 스택 출력이 작성되는 경로입니다.  
배포 후 스택 출력은 지정된 출력 파일에 JSON 형식으로 작성됩니다.  
프로젝트의 `cdk.json` 파일이나 로컬 개발 시스템의 `~/.cdk.json`에서 이 옵션을 구성할 수 있습니다.  

```
{
   "app": "npx ts-node bin/myproject.ts",
   // ...
   "outputsFile": "outputs.json"
}
```
여러 스택이 배포되는 경우 스택 이름을 나타내는 키로 구성된 동일한 출력 파일에 출력이 작성됩니다.<a name="ref-cli-cmd-deploy-options-parameters"></a>

 `--parameters <ARRAY>`   
배포 중 CloudFormation에 추가 파라미터를 전달합니다.  
이 옵션은 `STACK:KEY=VALUE` 형식의 배열을 허용합니다.  
+  `STACK` - 파라미터를 연결할 스택의 이름입니다.
+  `KEY` - 스택의 파라미터 이름입니다.
+  `VALUE` - 배포 시 전달할 값입니다.
스택 이름이 제공되지 않거나 `*`가 스택 이름으로 제공되는 경우 배포 중인 모든 스택에 파라미터가 적용됩니다. 스택이 파라미터를 사용하지 않으면 배포가 실패합니다.  
파라미터는 중첩된 스택에 전파되지 않습니다. 중첩된 스택에 파라미터를 전달하려면 ` [NestedStack](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.NestedStack.html) ` 구문을 사용합니다.  
 *기본 값*: `{}` <a name="ref-cli-cmd-deploy-options-previous-parameters"></a>

 `--previous-parameters <BOOLEAN>`   
기존 파라미터에 이전 값을 사용합니다.  
이 옵션을 `false`로 설정하면 모든 배포에서 모든 파라미터를 지정해야 합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-deploy-options-progress"></a>

 `--progress <STRING>`   
CDK CLI가 배포 진행 상황을 표시하는 방법을 구성합니다.  
+  `bar` - 현재 배포 중인 리소스에 대한 이벤트와 함께 스택 배포 이벤트를 진행률 표시줄로 표시합니다.
+  `events` – 모든 CloudFormation 이벤트를 포함한 전체 기록을 제공합니다.
프로젝트의 `cdk.json` 파일이나 로컬 개발 시스템의 `~/.cdk.json`에서 이 옵션을 구성할 수도 있습니다.  

```
{
   "progress": "events"
}
```
 *유효한 값*: `bar`, `events`   
 *기본 값*: `bar` <a name="ref-cli-cmd-deploy-options-require-approval"></a>

 `--require-approval <STRING>`   
보안에 민감한 변경 사항 중 수동 승인이 필요한 변경 사항을 지정합니다.  
+  `any-change` - 스택의 모든 변경 사항에 대해 수동 승인이 필요합니다.
+  `broadening` - 변경에 권한 또는 보안 그룹 규칙의 확대가 포함되는 경우 수동 승인이 필요합니다.
+  `never` – 승인이 필요하지 않습니다.
 *유효한 값*: `any-change`, `broadening`, `never`   
 *기본 값*: `broadening` <a name="ref-cli-cmd-deploy-options-rollback"></a>

 `--rollback` \$1 `--no-rollback`, `-R`   
배포 중 리소스 생성 또는 업데이트에 실패하면 배포는 CDK CLI가 반환되기 전에 최신 안정 상태로 롤백됩니다. 해당 시점까지의 변경 사항은 모두 취소됩니다. 생성된 리소스는 삭제되고 적용된 업데이트는 롤백됩니다.  
이 동작을 끄려면 `--no-rollback`을 지정합니다. 리소스 생성 또는 업데이트에 실패하면 CDK CLI는 해당 시점까지의 변경 사항을 그대로 두고 반환됩니다. 이렇게 하면 배포가 실패하고 일시 중지된 상태가 됩니다. 여기에서 코드를 업데이트하고 배포를 다시 시도할 수 있습니다. 이는 빠르게 반복하는 개발 환경에서 유용할 수 있습니다.  
`--no-rollback`을 사용하여 수행한 배포가 실패하여 배포를 롤백하려는 경우 `cdk rollback` 명령을 사용할 수 있습니다. 롤백에 대한 자세한 내용은 [CDK 롤백](ref-cli-cmd-rollback.md)을 참조하세요.  
`--no-rollback`을 사용하면 리소스 교체를 유발하는 배포는 항상 실패합니다. 이 옵션 값은 새 리소스를 업데이트하거나 생성하는 배포에만 사용할 수 있습니다.
 *기본 값*: `--rollback` <a name="ref-cli-cmd-deploy-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
기존 CDK Toolkit 스택의 이름입니다.  
기본적으로 `cdk bootstrap`은 지정된 AWS 환경에 `CDKToolkit`라는 스택을 배포합니다. 부트스트랩 스택에 다른 이름을 지정하려면 이 옵션을 사용합니다.  
CDK CLI는 이 값을 사용하여 부트스트랩 스택 버전을 확인합니다.<a name="ref-cli-cmd-deploy-options-watch"></a>

 `--watch <BOOLEAN>`   
CDK 프로젝트 파일을 지속적으로 관찰하고, 변경 사항이 탐지되면 지정된 스택을 자동으로 배포합니다.  
이 옵션은 기본적으로 `--hotswap`을 의미합니다.  
이 옵션에는 이에 상응하는 CDK CLI 명령이 있습니다. CDK에 대한 자세한 내용은 [CDK 감시](ref-cli-cmd-watch.md) 섹션을 참조하세요.

## 예제
<a name="ref-cli-cmd-deploy-examples"></a>

### MyStackName이라는 스택 배포
<a name="ref-cli-cmd-deploy-examples-1"></a>

```
$ cdk deploy MyStackName --app='node bin/main.js'
```

### 앱에 여러 스택 배포
<a name="ref-cli-cmd-deploy-examples-2"></a>

`cdk list`를 사용하여 스택을 나열합니다.

```
$ cdk list
CdkHelloWorldStack
CdkStack2
CdkStack3
```

모든 스택을 배포하려면 `--all` 옵션을 사용합니다.

```
$ cdk deploy --all
```

배포할 스택을 선택하려면 스택 이름을 인수로 제공합니다.

```
$ cdk deploy CdkHelloWorldStack CdkStack3
```

### 파이프라인 스택 배포
<a name="ref-cli-cmd-deploy-examples-3"></a>

`cdk list`를 사용하여 스택 이름을 경로로 표시해서 파이프라인 계층 구조에서 스택의 위치를 보여줍니다.

```
$ cdk list
PipelineStack
PiplelineStack/Prod
PipelineStack/Prod/MyService
```

모든 스택을 배포하려면 `--all` 옵션 또는 와일드카드 `*`를 사용합니다. 위와 같이 스택 계층 구조가 있는 경우 `--all`과 `*`는 최상위 수준의 스택만 일치시킵니다. 계층 구조의 모든 스택을 일치시키려면 `**`를 사용합니다.

이러한 패턴을 결합할 수 있습니다. 다음은 `Prod` 스테이지의 모든 스택을 배포합니다.

```
$ cdk deploy PipelineStack/Prod/**
```

### 배포 시 파라미터 전달
<a name="ref-cli-cmd-deploy-examples-4"></a>

CDK 스택에서 파라미터를 정의합니다. 다음은 Amazon SNS 주제에 대해 `TopicNameParam`이라는 파라미터를 생성하는 예입니다.

```
new sns.Topic(this, 'TopicParameter', {
    topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString()
});
```

`parameterized`의 파라미터 값을 제공하려면 다음을 실행합니다.

```
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"
```

`--force` 옵션을 사용하여 파라미터 값을 재정의할 수 있습니다. 다음은 이전 배포에서 주제 이름을 재정의하는 예입니다.

```
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force
```

### 배포 후 파일에 스택 출력 작성
<a name="ref-cli-cmd-deploy-examples-5"></a>

CDK 스택 파일에 출력을 정의합니다. 다음은 함수 ARN에 대한 출력을 생성하는 예입니다.

```
const fn = new lambda.Function(this, "fn", {
  handler: "index.handler",
  code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`),
  runtime: lambda.Runtime.NODEJS_LATEST
});

new cdk.CfnOutput(this, 'FunctionArn', {
  value: fn.functionArn,
});
```

스택을 배포하고 `outputs.json`에 출력을 작성합니다.

```
$ cdk deploy --outputs-file outputs.json
```

다음은 배포 후 `outputs.json`의 예입니다.

```
{
  "MyStack": {
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK"
  }
}
```

이 예에서 키 `FunctionArn`은 `CfnOutput` 인스턴스의 논리적 ID에 해당합니다.

다음은 여러 스택이 배포된 경우 배포 후 `outputs.json`의 예입니다.

```
{
  "MyStack": {
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK"
  },
  "AnotherStack": {
    "VPCId": "vpc-z0mg270fee16693f"
  }
}
```

### 배포 방법 수정
<a name="ref-cli-cmd-deploy-examples-6"></a>

변경 세트를 사용하지 않고 더 빠르게 배포하려면 `--method='direct'`를 사용합니다.

```
$ cdk deploy --method='direct'
```

변경 세트를 생성하지만 배포하지 않으려면 `--method='prepare-change-set'`를 사용합니다. 기본적으로 `cdk-deploy-change-set`라는 변경 세트가 생성됩니다. 이 이름의 이전 변경 세트가 있으면 덮어쓰여집니다. 변경 사항이 탐지되지 않으면 빈 변경 세트가 계속 생성됩니다.

변경 세트의 이름을 지정할 수도 있습니다. 다음은 예제입니다.

```
$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'
```

# `cdk destroy`
<a name="ref-cli-cmd-destroy"></a>

AWS 환경에서 AWS CDK 스택을 하나 이상 삭제합니다.

스택을 삭제하면 `DeletionPolicy`가 `Retain`으로 구성되지 않은 한 스택의 리소스가 삭제됩니다.

스택 삭제 중 이 명령은 `cdk deploy` 동작과 유사한 진행 상황 정보를 출력합니다.

## 사용법
<a name="ref-cli-cmd-destroy-usage"></a>

```
$ cdk destroy <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-destroy-args"></a><a name="ref-cli-cmd-destroy-args-stack-name"></a>

 **CDK 스택 ID**   
삭제할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-destroy-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-destroy-options-all"></a>

 `--all <BOOLEAN>`   
사용 가능한 모든 스택을 삭제합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-destroy-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
요청된 스택만 배포하고 종속성은 포함하지 않습니다.<a name="ref-cli-cmd-destroy-options-force"></a>

 `--force, -f <BOOLEAN>`   
스택을 삭제하기 전에 확인을 요청하지 않습니다.<a name="ref-cli-cmd-destroy-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk destroy` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-destroy-examples"></a>

### MyStackName이라는 스택 삭제
<a name="ref-cli-cmd-destroy-examples-1"></a>

```
$ cdk destroy --app='node bin/main.js' <MyStackName>
```

# `cdk diff`
<a name="ref-cli-cmd-diff"></a>

diff를 수행하여 AWS CDK 스택 간의 인프라 변경 사항을 확인합니다.

이 명령은 일반적으로 로컬 CDK 앱의 스택 현재 상태와 배포된 스택의 차이점을 비교하는 데 사용됩니다. 그러나 배포된 스택을 로컬 AWS CloudFormation 템플릿과 비교할 수도 있습니다.

## 사용법
<a name="ref-cli-cmd-diff-usage"></a>

```
$ cdk diff <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-diff-args"></a><a name="ref-cli-cmd-diff-args-stack-name"></a>

 **CDK 스택 ID**   
diff를 수행할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-diff-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-diff-options-change-set"></a>

 `--change-set <BOOLEAN>`   
리소스 교체를 분석하기 위해 변경 세트를 생성할지 여부를 지정합니다.  
`true`이면 CDK CLI는 스택에 적용될 정확한 변경 사항을 표시하기 위해 AWS CloudFormation 변경 세트를 생성합니다. 이 출력에는 리소스가 업데이트될지 아니면 교체될지에 대한 정보가 포함됩니다. CDK CLI는 이 작업을 수행하기 위해 조회 역할 대신 배포 역할을 사용합니다.  
`false`이면 CloudFormation 템플릿을 비교하여 더 빠르지만 정확도는 떨어지는 diff를 수행합니다. 리소스 교체가 필요한 속성에 대해 탐지된 모든 변경 사항은 리소스 참조를 하드 코딩된 ARN으로 바꾸는 것처럼 순전히 표면적인 변경이라 하더라도 리소스 교체로 표시됩니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-diff-options-context-lines"></a>

 `--context-lines <NUMBER>`   
임의의 JSON diff 렌더링에 포함할 컨텍스트 줄 수입니다.  
 *기본 값*: `3` <a name="ref-cli-cmd-diff-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
요청된 스택에 대해서만 diff를 수행하고 종속성은 포함하지 않습니다.<a name="ref-cli-cmd-diff-options-fail"></a>

 `--fail <BOOLEAN>`   
차이가 탐지되면 실패하고 코드 `1`로 종료합니다.<a name="ref-cli-cmd-diff-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk diff` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-diff-options-processed"></a>

 `--processed <BOOLEAN>`   
이미 처리된 CloudFormation 변환이 있는 템플릿과 비교할지 여부를 지정합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-diff-options-quiet"></a>

 `--quiet, -q <BOOLEAN>`   
변경 사항이 탐지되지 않으면 CDK 스택 이름과 기본 `cdk diff` 메시지를 `stdout`에 출력하지 않습니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-diff-options-security-only"></a>

 `--security-only <BOOLEAN>`   
확장된 보안 변경 사항에 대해서만 diff를 수행합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-diff-options-strict"></a>

 `--strict <BOOLEAN>`   
`cdk diff` 동작을 더 정확하거나 엄격하게 수정합니다. true이면 CDK CLI는 ` AWS::CDK::Metadata` 리소스나 읽을 수 없는 ASCII가 아닌 문자를 필터링하지 않습니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-diff-options-template"></a>

 `--template <STRING>`   
CDK 스택을 비교할 CloudFormation 템플릿의 경로입니다.

## 예제
<a name="ref-cli-cmd-diff-examples"></a>

### MyStackName이라는 현재 배포된 스택과의 차이점 확인
<a name="ref-cli-cmd-diff-examples-1"></a>

CDK CLI는 diff 출력에 다음 기호를 사용합니다.
+  `[+]` - 변경 사항을 배포할 때 추가될 코드 또는 리소스를 식별합니다.
+  `[-]` - 변경 사항을 배포할 경우 제거될 코드 또는 리소스를 식별합니다.
+  `[~]` - 변경 사항을 배포할 경우 수정될 리소스 또는 속성을 식별합니다.

다음은 Lambda 함수에 대한 로컬 변경 사항의 차이를 보여주는 예제입니다.

```
$ cdk diff MyStackName
start: Building <asset-hash>:<account:Region>
success: Built <asset-hash>:<account:Region>
start: Publishing <asset-hash>:<account:Region>
success: Published <asset-hash>:<account:Region>
Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff)
Stack MyStackName
Resources
[~] AWS::Lambda::Function HelloWorldFunction <resource-logical-ID>
 └─ [~] Code
     └─ [~] .ZipFile:
         ├─ [-]
        exports.handler = async function(event) {
          return {
            statusCode: 200,
            body: JSON.stringify('Hello World!'),
          };
        };

         └─ [+]
        exports.handler = async function(event) {
          return {
            statusCode: 200,
            body: JSON.stringify('Hello from CDK!'),
          };
        };



✨  Number of stacks with differences: 1
```

수정될 리소스에 대한 `[~]` 지표가 항상 전체 리소스 교체를 의미하지는 않습니다.
+ `Code`와 같은 일부 리소스 속성은 리소스를 업데이트합니다.
+ `FunctionName`와 같은 일부 리소스 속성으로 인해 전체 리소스 교체가 발생할 수 있습니다.

### 특정 CloudFormation 템플릿과의 차이점 확인
<a name="ref-cli-cmd-diff-examples-2"></a>

```
$ cdk diff MyStackName --app='node bin/main.js' --template-path='./MyStackNameTemplate.yaml'
```

### 로컬 스택을 배포된 스택과 구분합니다. 변경 사항이 감지되지 않으면 stdout에 인쇄하지 않습니다.
<a name="ref-cli-cmd-diff-examples-3"></a>

```
$ cdk diff MyStackName --app='node bin/main.js' --quiet
```

# `cdk docs`
<a name="ref-cli-cmd-docs"></a>

브라우저에서 AWS CDK 설명서를 엽니다.

## 사용법
<a name="ref-cli-cmd-docs-usage"></a>

```
$ cdk docs <options>
```

## 옵션
<a name="ref-cli-cmd-docs-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-docs-options-browser"></a>

 `--browser, -b <STRING>`   
브라우저를 여는 데 사용할 명령으로, 열려는 파일 경로의 자리 표시자로 `%u`를 사용합니다.  
 *기본 값*: `open %u` <a name="ref-cli-cmd-docs-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk docs` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-docs-examples"></a>

### Google Chrome에서 AWS CDK 설명서 열기
<a name="ref-cli-cmd-docs-examples-1"></a>

```
$ cdk docs --browser='chrome %u'
```

# `cdk doctor`
<a name="ref-cli-cmd-doctor"></a>

로컬 AWS CDK 프로젝트와 개발 환경에 대한 유용한 정보를 검사하고 표시합니다.

이 정보는 CDK 문제를 해결하는 데 도움이 될 수 있으며 버그 보고서를 제출할 때 제공해야 합니다.

## 사용법
<a name="ref-cli-cmd-doctor-usage"></a>

```
$ cdk doctor <options>
```

## 옵션
<a name="ref-cli-cmd-doctor-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-doctor-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk doctor` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-doctor-examples"></a>

### `cdk doctor` 명령의 간단한 예
<a name="ref-cli-cmd-doctor-examples-1"></a>

```
$ cdk doctor
ℹ️ CDK Version: 1.0.0 (build e64993a)
ℹ️ AWS environment variables:
  - AWS_EC2_METADATA_DISABLED = 1
  - AWS_SDK_LOAD_CONFIG = 1
```

# `cdk drift`
<a name="ref-cli-cmd-drift"></a>

AWS Cloud Development Kit(AWS CDK)를 사용하여 정의, 관리 및 배포하는 리소스의 구성 드리프트를 감지합니다. 드리프트는 스택의 실제 구성이 예상 구성과 다를 때 발생하며, AWS CloudFormation 외부에서 리소스가 수정될 때 일어납니다.

이 명령은 현재 상태를 예상된 구성과 비교하여 수정된 리소스(예: AWS 콘솔 또는 AWS CLI를 통해)를 식별합니다. 이러한 수정으로 인해 인프라에서 예기치 않은 동작이 발생할 수 있습니다.

드리프트 감지 중에 CDK CLI는 진행률 표시기와 결과를 출력하여 다음을 표시합니다.
+ 예상된 구성에서 드리프트된 리소스.
+ 드리프트가 있는 총 리소스 수.
+ 스택에서 드리프트 감지 여부를 나타내는 요약.

**중요**  
`cdk drift` 및 `cdk diff` 명령은 다르게 작동합니다.  
 `cdk drift`는 CloudFormation의 드리프트 감지 작업을 호출하여 AWS("실제")의 실제 리소스 상태를 CloudFormation의 예상 구성과 비교합니다. 모든 AWS 리소스가 드리프트 감지를 지원하지는 않습니다. 지원되는 리소스 목록은 *AWS CloudFormation 사용 설명서*의 [리소스 유형 지원](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)을 참조하세요.
 `cdk diff`는 로컬 CDK 코드에서 합성된 CloudFormation 템플릿을 배포된 CloudFormation 스택의 템플릿과 비교합니다.
리소스가 CloudFormation 외부에서 수정되었는지(예: AWS 콘솔 또는 AWS CLI를 통해) 확인해야 하는 경우 `cdk drift`를 사용합니다. 배포 전에 로컬 코드 변경이 인프라에 미치는 영향을 미리 보고 싶을 경우 `cdk diff`를 사용합니다.

## 사용법
<a name="ref-cli-cmd-drift-usage"></a>

```
$ cdk drift <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-drift-args"></a><a name="ref-cli-cmd-drift-args-stack-name"></a>

 **스택 이름**:   
드리프트를 확인하려는 스택의 이름입니다. 드리프트 감지를 수행하려면 이전에 스택을 CloudFormation에 배포해야 합니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요  
스택을 지정하지 않으면 CDK 앱에 정의된 모든 스택에서 드리프트 감지가 수행됩니다.

## 옵션
<a name="ref-cli-cmd-drift-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-drift-options-fail"></a>

 `--fail <BOOLEAN>`   
드리프트가 감지되면 종료 코드 1과 함께 반환됩니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-drift-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk drift` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-drift-examples"></a>

### 특정 스택의 드리프트 확인
<a name="ref-cli-cmd-drift-examples-stack"></a>

```
$ cdk drift MyStackName
```

명령은 다음과 유사한 결과를 출력합니다.

```
Stack MyStackName
Modified Resources
[~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD
 └─ [~] /Description
     ├─ [-] My original hello world Lambda function
     └─ [+] My drifted hello world Lambda function

1 resource has drifted from their expected configuration

✨  Number of resources with drift: 1
```

### 리소스가 삭제되었을 때 드리프트 확인
<a name="ref-cli-cmd-drift-examples-deleted"></a>

다음 예제에서는 리소스가 모두 수정 및 삭제되었을 때의 출력 모습을 보여줍니다.

```
Stack MyStackName
Modified Resources
[~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD
 └─ [~] /Description
     ├─ [-] My original hello world Lambda function
     └─ [+] My drifted hello world Lambda function
Deleted Resources
[-] AWS::CloudWatch::Alarm MyAlarm MyCWAlarmABCD1234

2 resources have drifted from their expected configuration

✨  Number of resources with drift: 2
```

### 종료 코드를 사용하여 드리프트 확인
<a name="ref-cli-cmd-drift-examples-fail"></a>

드리프트가 감지되었을 때 명령이 0이 아닌 종료 코드를 반환하도록 하려면:

```
$ cdk drift MyStackName --fail
```

이는 CI/CD 파이프라인에서 인프라 드리프트를 자동으로 감지하고 대응하는 데 유용합니다.

# `cdk flags`
<a name="ref-cli-cmd-flags"></a>

CDK CLI에 대한 기능 플래그 구성을 확인하고 수정합니다.

기능 플래그는 CDK CLI의 동작을 제어하며 이를 사용하여 특정 기능을 활성화 또는 비활성화할 수 있습니다. `cdk flags` 명령을 사용하여 현재 기능 플래그 구성을 보고 필요에 따라 수정합니다.

**주의**  
`cdk flags` 명령은 AWS CDK용으로 개발 중입니다. 이 명령의 현재 기능은 프로덕션에 적합하고 사용하기에 안전한 것으로 간주됩니다. 그러나 이 명령의 범위와 기능은 변경될 수 있습니다. 따라서 이 명령을 사용할 수 있는 `unstable=flags` 옵션을 제공하여 옵트인해야 합니다.

## 사용법
<a name="ref-cli-cmd-flags-usage"></a>

```
$ cdk flags <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-flags-args"></a><a name="ref-cli-cmd-flags-args-flagname"></a>

 **FLAGNAME**   
확인 또는 수정하려는 특정 기능 플래그의 이름입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-flags-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-flags-options-set"></a>

 `--set <BOOLEAN>`   
기능 플래그 구성을 수정합니다.<a name="ref-cli-cmd-flags-options-all"></a>

 `--all <BOOLEAN>`   
모든 기능 플래그를 수정하거나 확인합니다.<a name="ref-cli-cmd-flags-options-recommended"></a>

 `--recommended <BOOLEAN>`   
플래그를 권장 상태로 변경합니다.<a name="ref-cli-cmd-flags-options-default"></a>

 `--default <BOOLEAN>`   
플래그를 기본 상태로 변경합니다.<a name="ref-cli-cmd-flags-options-unconfigured"></a>

 `--unconfigured <BOOLEAN>`   
구성되지 않은 기능 플래그를 수정합니다.<a name="ref-cli-cmd-flags-options-value"></a>

 `--value <STRING>`   
기능 플래그 구성을 설정할 값입니다.  
 *requiresArg*: true<a name="ref-cli-cmd-flags-options-safe"></a>

 `--safe <BOOLEAN>`   
애플리케이션에 영향을 주지 않는 모든 기능 플래그를 활성화합니다.<a name="ref-cli-cmd-flags-options-interactive"></a>

 `--interactive, -i <BOOLEAN>`   
플래그 명령에 대한 대화형 옵션입니다.

## 예제
<a name="ref-cli-cmd-flags-examples"></a>

### 기능 플래그 구성 확인
<a name="ref-cli-cmd-flags-examples-1"></a>

`cdk flags`를 실행하여 권장 상태와 다른 기능 플래그 구성에 대한 보고서를 봅니다. 구성되지 않은 플래그에는 현재 플래그에 값이 없음을 나타내는 `<unset>` 레이블이 지정됩니다. 플래그는 다음 순서로 표시됩니다.
+ 권장 값과 일치하지 않는 값으로 설정된 플래그
+ 구성하지 않은 플래그

```
$ cdk flags --unstable=flags
Feature Flag                           Recommended                       User
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

`cdk flags --all`을 실행하여 모든 기능 플래그에 대한 보고서를 다음 순서로 볼 수도 있습니다.
+ 권장 값과 일치하는 값으로 설정된 플래그
+ 권장 값과 일치하지 않는 값으로 설정된 플래그
+ 구성하지 않은 플래그

```
$ cdk flags --unstable=flags --all
Feature Flag                              Recommended                     User
@aws-cdk/...                                true                         true
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

### 기능 플래그 값 수정
<a name="ref-cli-cmd-flags-examples-2"></a>

기능 플래그를 대화형으로 수정하려면 `cdk flags --interactive`(또는 `cdk flags -i`)를 실행하여 메뉴 옵션 목록을 확인합니다.

모든 기능 플래그를 권장 값으로 변경하려면 `cdk flags --set --recommended --all`을 실행합니다. 이 명령은 최신 CDK 기능 플래그 구성을 사용하여 기능 플래그 구성을 최신 상태로 유지합니다. 이 명령을 실행하면 구성된 기존 값을 덮어쓸 수 있습니다.

```
$ cdk flags --unstable=flags --set --recommended --all
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
                ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

구성된 기존 플래그의 상태를 유지하려면 `cdk flags --set --recommended --unconfigured`를 실행합니다. 이 옵션은 구성되지 않은 기능 플래그만 권장 값으로 변경합니다.

```
$ cdk flags --unstable=flags --set --recommended --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
            ├─ [-] None
            └─ [+] ServerSideEncryptionConfiguration:
                    - ...
            ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

구성되지 않은 기능 플래그가 애플리케이션을 방해하지 않도록 하려면 `cdk flags --set --default --unconfigured` 명령을 실행하여 구성되지 않은 플래그를 기본값으로 변경합니다. 예를 들어 `@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021`이 구성되지 않았다면 `cdk synth`를 실행한 후 알림이 표시됩니다. 그러나 플래그를 기본 상태(false)로 설정하면 플래그가 구성되고 꺼지며 애플리케이션에 영향을 주지 않습니다.

```
$ cdk flags --unstable=flags --set --default --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...

  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

### 특정 기능 플래그 검사
<a name="ref-cli-cmd-flags-examples-3"></a>

#### 플래그에 대한 자세한 정보 확인
<a name="_view_more_information_about_a_flag"></a>

`cdk flags` 및 `cdk flags --all`을 실행하고 기능 플래그 구성을 보는 것 외에도 `cdk flags "FLAGNAME"`을 사용하여 특정 기능 플래그를 검사하고 플래그가 수행하는 작업을 확인할 수도 있습니다. 이는 특정 플래그와 해당 플래그가 애플리케이션에 미치는 영향을 이해하고자 하는 경우에 유용할 수 있습니다.

```
$ cdk flags --unstable=flags "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021"
    Description: Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.
    Recommended Value: true
    User Value: true
```

#### 하위 문자열을 기준으로 플래그 필터링
<a name="_filter_flags_by_substring"></a>

`cdk flags substring`을 실행하여 일치하는 모든 기능 플래그를 볼 수도 있습니다. 해당 하위 문자열과 일치하는 기능 플래그가 하나만 있는 경우 특정 세부 정보가 표시됩니다.

```
$ cdk flags --unstable=flags ebs
@aws-cdk/aws-ec2:ebsDefaultGp3Volume
    Description: When enabled, the default volume type of the EBS volume will be GP3
    Recommended Value: true
    User Value: true
```

여러 플래그가 하위 문자열과 일치하는 경우 일치하는 모든 플래그가 테이블에 표시됩니다. 여러 하위 문자열을 입력하면 하위 문자열이 포함된 일치하는 모든 플래그가 반환됩니다.

```
$ cdk flags --unstable=flags s3 lambda
Feature Flag                              Recommended                     User
* @aws-cdk/s3...                            true                         false
* @aws-cdk/lambda...                        true                         false
* @aws-cdk/lambda...                        true                         <unset>
```

#### 특정 플래그 수정
<a name="_modify_a_specific_flag"></a>

플래그 값을 수정해야 하고 플래그가 정확하고 지원되는 상태로 설정되어 있는지 확인하려면 `cdk flags --set "FLAGNAME" --value="state"`를 실행합니다.

```
$ cdk flags --unstable=flags --set "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021" --value="true"
  Synthesizing...
    Resources
    [~] AWS::CloudFront::Distribution MyDistribution
    └─ [~] Properties
        └─ [~] DefaultSecurityPolicy
            ├─ [-] TLSv1.0
            └─ [+] TLSv1.2_2021
                    - ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

# `cdk gc`
<a name="ref-cli-cmd-gc"></a>

AWS Cloud Development Kit(AWS CDK) 명령줄 인터페이스(CLI) `cdk gc` 명령을 사용하여 부트스트랩 스택의 리소스에 저장된 미사용 자산에 대한 폐영역 회수를 수행합니다. 더 이상 필요하지 않은 자산을 확인, 관리 및 삭제하려면 이 명령을 사용합니다.

Amazon Simple Storage Service(Amazon S3) 자산의 경우 CDK CLI는 동일한 환경의 기존 AWS CloudFormation 템플릿을 확인하여 참조되는지 확인합니다. 참조하지 않으면 사용되지 않은 것으로 간주되며 폐영역 회수 작업에 적합한 것으로 간주됩니다.

**주의**  
`cdk gc` 명령은 AWS CDK용으로 개발 중입니다. 이 명령의 현재 기능은 프로덕션에 적합하고 사용하기에 안전한 것으로 간주됩니다. 그러나 이 명령의 범위와 기능은 변경될 수 있습니다. 따라서 이 명령을 사용할 수 있는 `unstable=gc` 옵션을 제공하여 옵트인해야 합니다.

## 사용법
<a name="ref-cli-cmd-gc-usage"></a>

```
$ cdk gc <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-gc-args"></a><a name="ref-cli-cmd-gc-args-env"></a>

 **AWS 환경**   
폐영역 회수 작업을 수행할 대상 AWS 환경입니다.  
환경을 제공할 때 사용할 형식: `aws://<account-id>/<region>` 예를 들어 `aws://<123456789012>/<us-east-1>`입니다.  
이 인수는 단일 명령으로 여러 번 제공하여 여러 환경에서 폐영역 회수 작업을 수행할 수 있습니다.  
기본적으로 CDK CLI는 CDK 앱에서 참조하거나 인수로 제공하는 모든 환경에서 폐영역 회수 작업을 수행합니다. 환경을 제공하지 않으면 CDK CLI가 기본 소스에서 환경을 결정합니다. 이러한 소스에는 `--profile` 옵션, 환경 변수 또는 기본 AWS CLI 소스를 사용하여 지정하는 환경이 포함됩니다.

## 옵션
<a name="ref-cli-cmd-gc-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-gc-options-action"></a>

 `--action <STRING>`   
폐영역 회수 과정에서 `cdk gc`가 자산에 대해 수행하는 작업입니다.  
+  `delete-tagged` - 제공한 버퍼 일수 범위 내의 날짜로 태그가 지정되었지만 새로 식별된 미사용 자산에는 태그가 지정되지 않은 자산을 삭제합니다.
+  `full` - 모든 폐영역 회수 작업을 수행합니다. 여기에는 제공한 버퍼 일수 범위 내의 자산을 삭제하고 새로 식별된 미사용 자산에 태그를 지정하는 것이 포함됩니다.
+  `print` - 명령 프롬프트에서 미사용 자산 수를 출력하지만 AWS 환경 내에서 실제로 변경하지는 않습니다.
+  `tag` - 새로 식별된 미사용 자산에 태그를 지정하지만, 사용자가 제공한 버퍼 일수 범위 내의 자산은 삭제하지 않습니다.
 *허용되는 값*: `delete-tagged`, `full`, `print`, `tag`   
 *기본 값*: `full` <a name="ref-cli-cmd-gc-options-bootstrap-stack-name"></a>

 `--bootstrap-stack-name <STRING>`   
사용자의 AWS 환경에서 CDK 부트스트랩 스택의 이름입니다. 부트스트랩 스택 이름을 사용자 지정한 경우 이 옵션을 제공합니다. 기본 `CDKToolkit` 스택 이름을 사용하는 경우 해당 옵션을 제공할 필요가 없습니다.  
 *기본 값*: `CDKToolkit` <a name="ref-cli-cmd-gc-options-confirm"></a>

 `--confirm <BOOLEAN>`   
자산을 삭제하기 전에 CDK CLI가 수동 확인을 요청할지 여부를 지정합니다.  
수동 확인 메시지를 표시하지 않고 자산을 자동으로 삭제하려면 `false`를 지정합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-gc-options-created-buffer-days"></a>

 `--created-buffer-days <NUMBER>`   
자산이 폐영역 회수 작업에 적합하기 전에 존재해야 하는 일수입니다.  
숫자를 입력하면 지정된 일수를 초과하여 존재하지 않은 자산이 폐영역 회수 작업에서 필터링됩니다.  
 *기본 값*: `1` <a name="ref-cli-cmd-gc-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk gc` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-gc-options-rollback-buffer-days"></a>

 `--rollback-buffer-days <NUMBER>`   
자산이 폐영역 회수 작업에 적합하기 전에 격리 대상으로 태그 되어야 하는 일수입니다.  
숫자를 입력하면 CDK CLI는 미사용 자산을 삭제하는 대신 현재 날짜로 태그를 지정합니다. 또한 CDK CLI는 `cdk gc` 명령의 이전 실행 중에 태그가 지정된 자산이 있는지 확인합니다. 이전에 태그가 지정된 자산 중 사용자가 제공한 버퍼 일수 범위에 속하는 자산은 삭제됩니다.  
 *기본 값*: `0` <a name="ref-cli-cmd-gc-options-type"></a>

 `--type <STRING>`   
폐영역 회수 작업을 수행할 부트스트랩 스택 내의 부트스트랩 리소스 유형입니다.  
+  `all` - 부트스트랩된 모든 리소스에 대해 폐영역 회수 작업을 수행합니다.
+  `ecr` - 부트스트랩 스택의 Amazon Elastic Container Registry(Amazon ECR) 리포지토리에 있는 자산에 대해 폐영역 회수 작업을 수행합니다.
+  `s3` - 부트스트랩 스택의 Amazon S3 버킷에 있는 자산에 대해 폐영역 회수 작업을 수행합니다.
 *허용되는 값*: `all`, `ecr`, `s3`   
 *기본 값*: `all` <a name="ref-cli-cmd-gc-options-unstable"></a>

 `--unstable <STRING>`   
아직 개발 중인 CDK CLI 명령의 사용을 허용합니다.  
이 옵션은 아직 개발 중이며 변경될 수 있는 CDK CLI 명령을 사용하는 데 필요합니다.  
이 옵션은 단일 명령에서 여러 번 제공할 수 있습니다.  
`cdk gc`를 사용하려면 `--unstable=gc`를 제공합니다.

## 예제
<a name="ref-cli-cmd-gc-examples"></a>

### 기본 예제
<a name="ref-cli-cmd-gc-examples-basic"></a>

다음 예제에서는 부트스트랩 스택의 Amazon S3 버킷에 있는 자산에 대해 기본 폐영역 회수 작업을 수행하기 위한 수동 확인을 요청합니다.

```
$ cdk gc --unstable=gc --type=s3

 ⏳  Garbage Collecting environment aws://<account-id>/<region>...
Found 99 assets to delete based off of the following criteria:
- assets have been isolated for > 0 days
- assets were created > 1 days ago

Delete this batch (yes/no/delete-all)?
```

다음 예제에서는 부트스트랩 스택의 Amazon S3 버킷에 있는 자산 범위에 대해 폐영역 회수 작업을 수행합니다. 이 범위에는 `cdk gc`가 이전에 30일 이상 태그 지정했고 10일 이전에 생성된 자산이 포함됩니다. 이 명령은 자산을 삭제하기 전에 수동 확인을 묻는 메시지를 표시합니다.

```
$ cdk gc --unstable=gc --type=s3 --rollback-buffer-days=30 --created-buffer-days=10
```

다음 예제에서는 30일 이상 사용되지 않은 부트스트랩 스택의 Amazon S3 버킷에서 이전에 태그가 지정된 자산을 삭제하는 작업을 수행합니다.

```
$ cdk gc --unstable=gc --type=s3 --action=delete-tagged --rollback-buffer-days=30
```

# `cdk import`
<a name="ref-cli-cmd-import"></a>

[AWS CloudFormation 리소스 가져오기](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)를 사용하여 기존 AWS 리소스를 CDK 스택으로 가져옵니다.

이 명령을 사용하면 다른 메서드로 생성된 기존 리소스를 가져와 AWS CDK로 관리할 수 있습니다.

리소스를 CDK 관리로 이전하는 것을 고려할 때 IAM 역할, Lambda 함수 및 이벤트 규칙과 같은 새 리소스를 생성하는 것이 수락되는 경우가 있습니다. Amazon S3 버킷 및 DynamoDB 테이블과 같은 상태 저장 리소스 등의 다른 리소스의 경우 새 리소스를 생성하면 서비스에 영향이 있을 수 있습니다. `cdk import`를 사용하여 서비스에 대한 중단을 최소화하면서 기존 리소스를 가져올 수 있습니다. 지원되는 AWS 리소스 목록은 *AWS CloudFormation 사용 설명서*의 [리소스 유형 지원](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)을 참조하세요.

 **CDK 스택으로 기존 리소스를 가져오려면 다음을 수행하세요**   

1. `cdk diff`를 실행하여 CDK 스택에 보류 중인 변경 사항이 없는지 확인합니다. `cdk import`를 수행할 때 가져오기 작업에서 허용되는 유일한 변경 사항은 가져오는 새 리소스를 추가하는 것입니다.

1. 스택으로 가져오려는 리소스에 대한 구문을 추가합니다. 예를 들어 Amazon S3 버킷에 대해 다음을 추가합니다.

   ```
   new s3.Bucket(this, 'ImportedS3Bucket', {});
   ```

   다른 변경 사항은 추가하지 않습니다. 또한 리소스의 현재 상태를 정확하게 모델링해야 합니다. 버킷 예제의 경우 AWS KMS 키, 수명 주기 정책 및 버킷과 관련된 기타 사항을 포함해야 합니다. 그렇지 않으면 후속 업데이트 작업이 예상대로 수행되지 않을 수 있습니다.

1. `cdk import`를 실행합니다. CDK 앱에 여러 스택이 있는 경우 특정 스택 이름을 인수로 전달합니다.

1. CDK CLI는 가져오려는 리소스의 실제 이름을 전달하라는 메시지를 표시합니다. 이 정보를 제공하면 가져오기가 시작됩니다.

1. `cdk import`에서 성공을 보고하면 CDK에서 리소스를 관리합니다. 구문 구성의 모든 후속 변경 사항은 리소스에 반영됩니다.

이 기능은 현재 다음과 같은 제한이 따릅니다.
+ 중첩된 스택으로 리소스를 가져오는 것은 불가능합니다.
+ 지정하는 속성이 가져온 리소스에 대해 올바르고 완전한지 여부는 확인되지 않습니다. 가져오기 후 드리프트 탐지 작업을 시작해 보세요.
+ 다른 리소스에 의존하는 리소스는 올바른 순서에 따라 개별적으로 또는 모두 함께 가져와야 합니다. 그렇지 않으면 해결되지 않은 참조와 함께 CloudFormation 배포가 실패합니다.
+ 이 명령은 암호화된 스테이징 버킷을 읽는 데 필요한 배포 역할 자격 증명을 사용합니다. 이를 위해서는 배포 역할에 필요한 IAM 권한이 포함된 부트스트랩 템플릿 버전 12가 필요합니다.

## 사용법
<a name="ref-cli-cmd-import-usage"></a>

```
$ cdk import <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-import-args"></a><a name="ref-cli-cmd-import-args-stack-name"></a>

 **CDK 스택 ID**   
리소스를 가져올 앱의 CDK 스택의 구문 ID입니다. 이 인수는 단일 명령에서 여러 번 제공할 수 있습니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-import-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-import-options-change-set-name"></a>

 `--change-set-name <STRING>`   
생성할 CloudFormation 변경 세트의 이름입니다.<a name="ref-cli-cmd-import-options-execute"></a>

 `--execute <BOOLEAN>`   
변경 세트를 실행할지 여부를 지정합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-import-options-force"></a>

 `--force, -f <BOOLEAN>`   
기본적으로 템플릿 차이에 업데이트 또는 삭제가 포함된 경우 CDK CLI는 프로세스를 종료합니다. 이 동작을 재정의하고 항상 가져오기를 계속하려면 `true`를 지정하세요.<a name="ref-cli-cmd-import-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk import` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-import-options-record-resource-mapping"></a>

 `--record-resource-mapping, -r <STRING>`   
가져올 CDK 리소스에 대한 기존 물리적 리소스의 매핑을 생성하려면 이 옵션을 사용합니다. 매핑은 사용자가 제공하는 파일 경로에 기록됩니다. 실제 가져오기 작업은 수행되지 않습니다.<a name="ref-cli-cmd-import-options-resource-mapping"></a>

 `--resource-mapping, -m <STRING>`   
리소스 매핑을 정의하는 파일을 지정하려면 이 옵션을 사용합니다. CDK CLI는 대화형으로 묻는 대신 이 파일을 사용하여 가져올 리소스에 물리적 리소스를 매핑합니다.  
이 옵션은 스크립트에서 실행할 수 있습니다.<a name="ref-cli-cmd-import-options-rollback"></a>

 `--rollback <BOOLEAN>`   
실패 시 스택을 안정 상태로 롤백합니다.  
`false`를 지정하려면 `--no-rollback` 또는 `-R`을 사용하면 됩니다.  
더 빠르게 반복하려면 `false`를 지정하세요. 리소스 교체가 포함된 배포는 항상 실패합니다.  
 *기본 값*: `true` <a name="ref-cli-cmd-import-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
생성할 CDK Toolkit 스택의 이름입니다.  
기본적으로 `cdk bootstrap`은 지정된 AWS 환경에 `CDKToolkit`라는 스택을 배포합니다. 부트스트랩 스택에 다른 이름을 지정하려면 이 옵션을 사용합니다.  
CDK CLI는 이 값을 사용하여 부트스트랩 스택 버전을 확인합니다.

# `cdk init`
<a name="ref-cli-cmd-init"></a>

템플릿에서 새 AWS CDK 프로젝트를 생성합니다.

## 사용법
<a name="ref-cli-cmd-init-usage"></a>

```
$ cdk init <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-init-args"></a><a name="ref-cli-cmd-init-args-template-type"></a>

 **템플릿 유형**   
새 CDK 프로젝트를 초기화할 CDK 템플릿 유형입니다.  
+  `app` - CDK 애플리케이션용 템플릿입니다.
+  `lib` - AWS Construct Library의 템플릿입니다.
+  `sample-app` - 몇 가지 구문이 포함된 CDK 애플리케이션의 예입니다.
 *유효한 값*: `app`, `lib`, `sample-app` 

## 옵션
<a name="ref-cli-cmd-init-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-init-options-generate-only"></a>

 `--generate-only <BOOLEAN>`   
git 리포지토리 설정, 종속성 설치, 프로젝트 컴파일 등의 추가 작업을 시작하지 않고 프로젝트 파일을 생성하려면 이 옵션을 지정합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-init-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk init` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-init-options-language"></a>

 `--language, -l <STRING>`   
새 프로젝트에 사용할 언어입니다. 이 옵션은 프로젝트의 `cdk.json` 구성 파일이나 로컬 개발 시스템의 `~/.cdk.json`에서 구성할 수 있습니다.  
 *유효한 값*: `csharp`, `fsharp`, `go`, `java`, `javascript`, `python`, `typescript` <a name="ref-cli-cmd-init-options-list"></a>

 `--list <BOOLEAN>`   
사용 가능한 템플릿 유형과 언어를 나열합니다.

## 예제
<a name="ref-cli-cmd-init-examples"></a>

### 사용 가능한 템플릿 유형 및 언어 나열
<a name="ref-cli-cmd-init-examples-1"></a>

```
$ cdk init --list
Available templates:
* app: Template for a CDK Application
   └─ cdk init app --language=[csharp|fsharp|go|java|javascript|python|typescript]
* lib: Template for a CDK Construct Library
   └─ cdk init lib --language=typescript
* sample-app: Example CDK Application with some constructs
   └─ cdk init sample-app --language=[csharp|fsharp|go|java|javascript|python|typescript]
```

### 라이브러리 템플릿에서 TypeScript로 새 CDK 앱 생성
<a name="ref-cli-cmd-init-examples-2"></a>

```
$ cdk init lib --language=typescript
```

# `cdk list`
<a name="ref-cli-cmd-list"></a>

CDK 앱의 모든 AWS CDK 스택과 해당 종속성을 나열합니다.

## 사용법
<a name="ref-cli-cmd-list-usage"></a>

```
$ cdk list <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-list-args"></a><a name="ref-cli-cmd-list-args-stack-name"></a>

 **CDK 스택 ID**   
이 명령을 수행할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-list-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-list-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk list` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-list-options-long"></a>

 `--long, -l <BOOLEAN>`   
각 스택에 대한 AWS 환경 정보를 표시합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-list-options-show-dependencies"></a>

 `--show-dependencies, -d <BOOLEAN>`   
각 스택에 대한 스택 종속성 정보를 표시합니다.  
 *기본 값*: `false` 

## 예제
<a name="ref-cli-cmd-list-examples"></a>

### CDK 앱 ‘node bin/main.js’의 모든 스택 나열
<a name="ref-cli-cmd-list-examples-1"></a>

```
$ cdk list --app='node bin/main.js'
Foo
Bar
Baz
```

### 각 스택에 대한 AWS 환경 세부 정보를 포함하여 모든 스택 나열
<a name="ref-cli-cmd-list-examples-"></a>

```
$ cdk list --app='node bin/main.js' --long
-
    name: Foo
    environment:
        name: 000000000000/bermuda-triangle-1
        account: '000000000000'
        region: bermuda-triangle-1
-
    name: Bar
    environment:
        name: 111111111111/bermuda-triangle-2
        account: '111111111111'
        region: bermuda-triangle-2
-
    name: Baz
    environment:
        name: 333333333333/bermuda-triangle-3
        account: '333333333333'
        region: bermuda-triangle-3
```

# `cdk metadata`
<a name="ref-cli-cmd-metadata"></a>

CDK 스택과 연결된 메타데이터를 표시합니다.

## 사용법
<a name="ref-cli-cmd-metadata-usage"></a>

```
$ cdk metadata <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-metadata-args"></a><a name="ref-cli-cmd-metadata-args-stack-name"></a>

 **CDK 스택 ID**   
메타데이터를 표시할 앱에서 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-metadata-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-metadata-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk metadata` 명령에 대한 명령 참조 정보를 표시합니다.

# `cdk migrate`
<a name="ref-cli-cdk-migrate"></a>

배포된 AWS 리소스, AWS CloudFormation 스택 및 CloudFormation 템플릿을 새 AWS CDK 프로젝트로 마이그레이션합니다.

이 명령은 `--stack-name`을 사용하여 제공하는 값으로 이름이 지정된 단일 스택이 포함된 새 CDK 앱을 생성합니다. `--from-scan`, `--from-stack` 또는 `--from-path`를 사용하여 마이그레이션 소스를 구성할 수 있습니다.

`cdk migrate` 사용에 대한 자세한 내용은 [AWS CDK로 기존 리소스 및 AWS CloudFormation 템플릿 마이그레이션](migrate.md)을 참조하세요.

**참고**  
`cdk migrate` 명령은 실험 단계에 있으므로 향후 큰 변경이 있을 수 있습니다.

## 사용법
<a name="ref-cli-cdk-migrate-usage"></a>

```
$ cdk migrate <options>
```

## 옵션
<a name="ref-cli-cdk-migrate-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.

### 필수 옵션
<a name="ref-cli-cdk-migrate-options-required"></a><a name="ref-cli-cdk-migrate-options-stack-name"></a>

 `--stack-name <STRING>`   
마이그레이션 후 CDK 앱 내에서 생성될 AWS CloudFormation 스택의 이름입니다.  
 *필수 항목 여부*: 예

### 조건부 옵션
<a name="ref-cli-cdk-migrate-options-conditional"></a><a name="ref-cli-cdk-migrate-options-from-path"></a>

 `--from-path <PATH>`   
마이그레이션할 AWS CloudFormation 템플릿의 경로입니다. 로컬 템플릿을 지정하려면 이 옵션을 제공합니다.  
 *필수 항목 여부*: 조건부. 로컬 AWS CloudFormation 템플릿에서 마이그레이션하는 경우 필요합니다.<a name="ref-cli-cdk-migrate-options-from-scan"></a>

 `--from-scan <STRING>`   
AWS 환경에서 배포된 리소스를 마이그레이션할 때 이 옵션을 사용하여 새 스캔을 시작해야 하는지 또는 AWS CDK CLI가 마지막으로 성공한 스캔을 사용해야 하는지 지정합니다.  
 *필수 항목 여부*: 조건부. 배포된 AWS 리소스에서 마이그레이션할 때 필요합니다.  
 *허용되는 값*: `most-recent`, `new` <a name="ref-cli-cdk-migrate-options-from-stack"></a>

 `--from-stack <BOOLEAN>`   
배포된 AWS CloudFormation 스택에서 마이그레이션하려면 이 옵션을 제공합니다. `--stack-name`을 사용하여 배포된 AWS CloudFormation 스택의 이름을 지정합니다.  
 *필수 항목 여부*: 조건부. 배포된 AWS CloudFormation 스택에서 마이그레이션하는 경우 필요합니다.

### 선택적 옵션
<a name="ref-cli-cdk-migrate-options-optional"></a><a name="ref-cli-cdk-migrate-options-account"></a>

 `--account <STRING>`   
AWS CloudFormation 스택 템플릿을 검색할 계정입니다.  
 *필수 항목 여부*: 아니요  
 *기본값*: AWS CDK CLI는 기본 소스에서 계정 정보를 가져옵니다.<a name="ref-cli-cdk-migrate-options-compress"></a>

 `--compress <BOOLEAN>`   
생성된 CDK 프로젝트를 `ZIP` 파일로 압축하려면 이 옵션을 제공합니다.  
 *필수 항목 여부*: 아니요<a name="ref-cli-cdk-migrate-options-filter"></a>

 `--filter <ARRAY>`   
AWS 계정과 AWS 리전에서 배포된 리소스를 마이그레이션할 때 사용합니다. 이 옵션은 마이그레이션할 배포된 리소스를 결정하는 필터를 지정합니다.  
이 옵션은 키 값 페어 배열을 수락합니다. 여기서 **키**는 필터 유형을 나타내고 **값**은 필터링할 값을 나타냅니다.  
다음은 허용되는 키입니다.  
+  `resource-identifier` – 리소스의 식별자입니다. 값은 리소스 논리적 또는 물리적 ID일 수 있습니다. 예를 들어 `resource-identifier="ClusterName"`입니다.
+  `resource-type-prefix` - AWS CloudFormation 리소스 유형 접두사입니다. 예를 들어, 모든 Amazon DynamoDB 리소스를 필터링하려면 `resource-type-prefix="AWS::DynamoDB::"`를 지정하세요.
+  `tag-key` - 리소스 태그의 키입니다. 예를 들어 `tag-key="myTagKey"`입니다.
+  `tag-value` - 리소스 태그의 값입니다. 예를 들어 `tag-value="myTagValue"`입니다.
`AND` 조건부 로직에 대해 여러 키 값 페어를 제공합니다. `--filter resource-type-prefix="AWS::DynamoDB::", tag-key="myTagKey"`는 태그 키로 `myTagKey`가 지정된 모든 DynamoDB 리소스를 필터링합니다.  
`OR` 조건부 로직을 위해 단일 명령에서 `--filter` 옵션을 여러 번 제공합니다. `--filter resource-type-prefix="AWS::DynamoDB::" --filter tag-key="myTagKey"`는 DynamoDB 리소스이거나 태그 키로 `myTagKey`가 지정된 모든 리소스를 필터링합니다.  
 *필수 항목 여부*: 아니요<a name="ref-cli-cdk-migrate-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk migrate` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cdk-migrate-options-language"></a>

 `--language <STRING>`   
마이그레이션 중 생성된 CDK 프로젝트에 사용할 프로그래밍 언어입니다.  
 *필수 항목 여부*: 아니요  
 *유효한 값*: `typescript`, `python`, `java`, `csharp`, `go`.  
 *기본값*: `typescript` <a name="ref-cli-cdk-migrate-options-output-path"></a>

 `--output-path <PATH>`   
마이그레이션된 CDK 프로젝트의 출력 경로입니다.  
 *필수 항목 여부*: 아니요  
 *기본값*: 기본적으로 AWS CDK CLI는 현재 작업 디렉터리를 사용합니다.<a name="ref-cli-cdk-migrate-options-region"></a>

 `--region <STRING>`   
AWS CloudFormation 스택 템플릿을 검색할 AWS 리전입니다.  
 *필수 항목 여부*: 아니요  
 *기본값*: AWS CDK CLI는 기본 소스에서 AWS 리전 정보를 가져옵니다.

## 예제
<a name="ref-cli-cdk-migrate-examples"></a>

### CloudFormation 스택에서 마이그레이션하는 간단한 예
<a name="ref-cli-cdk-migrate-examples-1"></a>

`--from-stack`을 사용하여 특정 AWS 환경에 배포된 CloudFormation 스택에서 마이그레이션합니다. `--stack-name`을 제공하여 새 CDK 스택의 이름을 지정합니다. 다음은 TypeScript를 사용하는 새로운 CDK 앱으로 `myCloudFormationStack`을 마이그레이션하는 예입니다.

```
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
```

### 로컬 CloudFormation 템플릿에서 마이그레이션하는 간단한 예
<a name="ref-cli-cdk-migrate-examples-2"></a>

`--from-path`를 사용하여 로컬 JSON 또는 YAML CloudFormation 템플릿에서 마이그레이션합니다. `--stack-name`을 제공하여 새 CDK 스택의 이름을 지정합니다. 다음은 로컬 `template.json` 파일에서 `myCloudFormationStack` 스택을 포함하는 TypeScript로 새 CDK 앱을 생성하는 예입니다.

```
$ cdk migrate --stack-name "myCloudFormationStack" --language typescript --from-path "./template.json"
```

### 배포된 AWS 리소스에서 마이그레이션하는 간단한 예
<a name="ref-cli-cdk-migrate-examples-3"></a>

`--from-scan`을 사용하여 CloudFormation 스택과 연결되지 않은 특정 AWS 환경에서 배포된 AWS 리소스를 마이그레이션합니다. CDK CLI는 IaC generator 서비스를 활용하여 리소스를 스캔하고 템플릿을 생성합니다. 그런 다음 CDK CLI는 템플릿을 참조하여 새 CDK 앱을 생성합니다. 다음은 마이그레이션된 AWS 리소스가 포함된 새 `myCloudFormationStack` 스택을 사용하여 TypeScript에서 새 CDK 앱을 생성하는 예입니다.

```
$ cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"
```

# `cdk notices`
<a name="ref-cli-cmd-notices"></a>

CDK 애플리케이션에 대한 공지를 표시합니다.

공지에는 보안 취약성, 회귀 및 지원되지 않는 버전 사용에 대한 중요한 메시지가 포함될 수 있습니다.

이 명령은 확인 여부에 관계없이 관련 공지를 표시합니다. 기본적으로 모든 명령 뒤에 관련 공지가 표시될 수도 있습니다.

다음과 같은 방법으로 공지를 억제할 수 있습니다.
+ 명령 옵션을 통해 공지를 억제합니다. 다음은 예제입니다.

  ```
  $ cdk deploy --no-notices
  ```
+ 프로젝트의 `cdk.json` 파일에서 컨텍스트를 통해 모든 공지를 무기한으로 억제합니다.

  ```
  {
    "notices": false,
    "context": {
      // ...
    }
  }
  ```
+ `cdk acknowledge` 명령으로 각 공지를 확인합니다.

## 사용법
<a name="ref-cli-cmd-notices-usage"></a>

```
$ cdk notices <options>
```

## 옵션
<a name="ref-cli-cmd-notices-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-notices-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk notices` 명령에 대한 명령 참조 정보를 표시합니다.

## 예제
<a name="ref-cli-cmd-notices-examples"></a>

### cdk deploy 명령을 실행한 후 표시되는 기본 공지의 예
<a name="ref-cli-cmd-notices-examples-1"></a>

```
$ cdk deploy

... # Normal output of the command

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: If a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: <1.126.0.

        More information at: https://github.com/aws/aws-cdk/issues/16603


17061   Error when building EKS cluster with monocdk import

        Overview: When using monocdk/aws-eks to build a stack containing
                  an EKS cluster, error is thrown about missing
                  lambda-layer-node-proxy-agent/layer/package.json.

        Affected versions: >=1.126.0 <=1.130.0.

        More information at: https://github.com/aws/aws-cdk/issues/17061


If you don’t want to see an notice anymore, use "cdk acknowledge ID". For example, "cdk acknowledge 16603"
```

### cdk notices 명령을 실행하는 간단한 예
<a name="ref-cli-cmd-notices-examples-2"></a>

```
$ cdk notices

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: if a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: framework: <=2.15.0 >=2.10.0

        More information at: https://github.com/aws/aws-cdk/issues/16603


If you don’t want to see a notice anymore, use "cdk acknowledge <id>". For example, "cdk acknowledge 16603"
```

# `cdk refactor`
<a name="ref-cli-cmd-refactor"></a>

**중요**  
`cdk refactor` 명령은 미리 보기 릴리스로 제공되며 변경될 수 있습니다.  
이 명령을 사용할 때는 `--unstable=refactor` 옵션을 제공해야 합니다.

AWS Cloud Development Kit(AWS CDK) 애플리케이션에서 코드를 리팩터링할 때 배포된 리소스를 보존합니다.

구문의 이름을 바꾸거나 구문을 CDK 코드의 스택 간에 이동할 때 CloudFormation은 일반적으로 이러한 구문을 새 리소스로 취급하여 서비스 중단 또는 데이터 손실로 이어질 수 있는 대체를 발생시킵니다. `cdk refactor` 명령은 이러한 변경 사항을 지능적으로 감지하고 CloudFormation의 리팩터링 API와 함께 작동하여 리소스를 유지하면서 논리적 ID를 업데이트합니다.

`cdk refactor`를 사용하여 다음을 수행할 수 있습니다.
+ 리소스 교체 없이 코드 베이스의 명확성을 높이기 위해 구문의 이름을 바꿉니다.
+ 스택 간에 리소스를 이동하여 우려 사항의 구성 및 분리를 개선합니다.
+ 기본 클라우드 리소스를 유지하면서 구문 계층 구조를 재구성합니다(예: 새 L3 구문으로 AWS 리소스 그룹화).
+ 버전 간의 논리적 ID를 변경할 때 리소스 대체를 트리거하지 않고 타사 종속 항목을 포함하여 구문 라이브러리 간에 안전하게 업그레이드하고 전환합니다.

이 명령은 변경 사항을 분석하고, 위치(스택 및 논리적 ID)를 변경하는 리소스 목록을 표시하고, ID와 상태를 유지하면서 CloudFormation 리소스를 업데이트하는 복잡한 프로세스를 처리합니다.

실행 시 명령은 현재 코드를 배포된 상태와 비교하여 매핑을 자동으로 계산합니다. 배포된 상태와 정확히 동일한 리소스 세트가 CDK 애플리케이션에 포함되어 있는지 확인하며, 구문 트리에서 리소스의 위치는 달라도 됩니다. 명령이 리소스 추가, 삭제 또는 수정을 감지하면 오류 메시지와 함께 리팩터링 작업이 거부됩니다.

매핑 계산 후 명령은 제안된 변경 사항을 표시하고 사용자 확인 후 리팩터링을 적용합니다. 모호성이 감지되면(유효한 매핑이 여러 개 가능한 경우) 이러한 사례를 해결하기 위해 명시적 매핑이 포함된 재정의 파일을 제공할 수 있습니다.

관련 내용은 [CDK 코드 리팩터링 시 배포된 리소스 보존](refactor.md)을 참조하세요.

## 사용법
<a name="ref-cli-cmd-refactor-usage"></a>

```
$ cdk refactor <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-refactor-args"></a><a name="ref-cli-cmd-refactor-args-stack-id"></a>

 **CDK 스택 ID**   
앱에서 리팩터링하려는 CDK 스택의 구문 ID입니다.  
여러 스택 ID를 지정하여 해당 스택에 리팩터링 작업을 집중할 수 있습니다. 스택 간에 리소스가 이동 중이고 이러한 스택 중 하나가 명시적으로 포함되지 않은 경우 리팩터링 명령은 작업에 추가 스택을 자동으로 포함합니다.  
스택 ID를 제공하지 않으면 앱의 모든 스택이 리팩터링 대상으로 간주됩니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-refactor-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-refactor-options-dry-run"></a>

 `--dry-run`   
콘솔에 매핑을 적용하지 않고 인쇄합니다.  
이 옵션은 특히 복잡한 애플리케이션으로 작업할 때 실제로 리팩터링을 수행하기 전에 변경 사항을 검증하는 데 유용합니다. 리소스를 수정하지 않고 정확히 어떤 변경을 수행할지 보여줍니다.<a name="ref-cli-cmd-refactor-options-force"></a>

 `--force`   
사용자에게 확인 메시지를 표시하지 않고 리팩터링을 진행합니다.  
이는 변경 사항에 대해 확신할 수 있는 대화형 환경에서 유용합니다. CI/CD 파이프라인과 같은 비대화형 환경에서 CDK CLI는 프롬프트 없이 자동으로 진행되므로 이 옵션은 필요하지 않습니다.<a name="ref-cli-cmd-refactor-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk refactor` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-refactor-options-override-file"></a>

 `--override-file <FILE>`   
CDK CLI가 리소스에 대한 리팩터링 방식을 결정할 수 없는 경우 재정의 파일을 제공합니다. 이 파일에는 JSON 형식의 리소스 매핑이 포함되어 있습니다. 다음은 예제입니다.  

```
{
    "environments": [
        {
            "account": "123456789012",
            "region": "us-east-2",
            "resources": {
                "StackA.OldName": "StackB.NewName",
                "StackC.Foo": "StackC.Bar"
            }
        }
    ]
}
```<a name="ref-cli-cmd-refactor-options-revert"></a>

 `--revert <FILE>`   
이전 리팩터링을 되돌립니다. 리소스 매핑이 포함된 재정의 파일을 제공해야 합니다.  
이렇게 해도 이전 리팩터링 작업이 완전히 실행 취소되지는 않습니다. 리팩터링을 완전히 되돌리려면 앱을 이전 상태로 롤백하고 리팩터링 프로세스를 다시 실행해야 합니다.

# `cdk rollback`
<a name="ref-cli-cmd-rollback"></a>

AWS Cloud Development Kit(AWS CDK) Command Line Interface(CLI) `cdk rollback` 명령을 사용하여 실패하거나 일시 중지된 스택을 AWS CloudFormation 배포에서 마지막 안정 상태로 롤백합니다.

**참고**  
이 명령을 사용하려면 환경에 부트스트랩 템플릿 v23이 배포되어 있어야 합니다. 자세한 내용은 [부트스트랩 템플릿 버전 기록](bootstrapping-env.md#bootstrap-template-history)을 참조하세요.

`cdk deploy`를 사용하여 배포하는 경우 CDK CLI는 기본적으로 실패한 배포를 롤백합니다. `cdk deploy`에 `--no-rollback`을 지정하면 `cdk rollback` 명령을 사용하여 실패한 배포를 수동으로 롤백할 수 있습니다. 이렇게 하면 스택의 마지막 안정 상태로 롤백이 시작됩니다.

## 사용법
<a name="ref-cli-cmd-rollback-usage"></a>

```
$ cdk rollback <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-rollback-args"></a><a name="ref-cli-cmd-rollback-args-stack-name"></a>

 **CDK 스택 ID**   
롤백할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-rollback-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-rollback-options-all"></a>

 `--all <BOOLEAN>`   
CDK 앱의 모든 스택을 롤백합니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-rollback-options-force"></a>

 `--force, -f <BOOLEAN>`   
`cdk rollback`을 사용하면 일부 리소스가 롤백되지 않을 수 있습니다. 모든 리소스의 롤백을 강제로 적용하려면 이 옵션을 제공합니다. 이는 스택의 각 리소스에 대한 `--orphan` 옵션을 제공하는 것과 동일한 동작입니다.  
 *기본 값*: `false` <a name="ref-cli-cmd-rollback-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk rollback` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-rollback-options-orphan"></a>

 `--orphan <LogicalId>`   
`cdk rollback`을 사용하면 일부 리소스가 롤백되지 않을 수 있습니다. 이 경우 이 옵션을 사용하고 롤백에 실패한 리소스의 논리적 ID를 제공하여 리소스의 강제 롤백을 시도할 수 있습니다.  
이 옵션은 단일 명령에서 여러 번 제공할 수 있습니다. 다음은 예입니다.  

```
$ cdk rollback MyStack --orphan MyLambdaFunction --orphan MyLambdaFunction2
```
모든 리소스를 강제로 롤백하려면 대신 `--force` 옵션을 사용합니다.<a name="ref-cli-cmd-rollback-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
환경이 부트스트래핑되는 기존 CDK Toolkit 스택의 이름입니다.  
기본적으로 `cdk bootstrap`은 지정된 AWS 환경에 `CDKToolkit`이라는 스택을 배포합니다. 부트스트랩 스택에 다른 이름을 지정하려면 이 옵션을 사용합니다.  
CDK CLI는 이 값을 사용하여 부트스트랩 스택 버전을 확인합니다.<a name="ref-cli-cmd-rollback-options-validate-bootstrap-version"></a>

 `--validate-bootstrap-version <BOOLEAN>`   
부트스트랩 스택 버전을 검증할지 여부를 지정합니다. `--validate-bootstrap-version=false` 또는 `--no-validate-bootsrap-version`을 제공하여 이 동작을 끕니다.  
 *기본 값*: `true` 

# `cdk synthesize`
<a name="ref-cli-cmd-synth"></a>

CDK 앱을 동기화하여 각 스택에 대한 AWS CloudFormation 템플릿을 포함한 클라우드 어셈블리를 생성합니다.

클라우드 어셈블리는 AWS 환경에 앱을 배포하는 데 필요한 모든 것을 포함하는 파일입니다. 예를 들어 앱의 각 스택에 대한 CloudFormation 템플릿과 앱에서 참조하는 파일 자산 또는 Docker 이미지의 사본이 포함됩니다.

앱에 단일 스택이 포함되어 있거나 단일 스택이 인수로 제공되는 경우 CloudFormation 템플릿도 표준 출력(`stdout`)에 YAML 형식으로 표시됩니다.

앱에 여러 스택이 포함된 경우 `cdk synth`는 클라우드 어셈블리를 `cdk.out`으로 합성합니다.

## 사용법
<a name="ref-cli-cmd-synth-usage"></a>

```
cdk synthesize <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-synth-args"></a><a name="ref-cli-cmd-synth-args-stack-name"></a>

 **CDK 스택 ID**   
합성할 앱의 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-synth-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-synth-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
요청된 스택만 합성하고 종속성은 포함하지 않습니다.<a name="ref-cli-cmd-synth-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk synthesize` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-synth-options-quiet"></a>

 `--quiet, -q <BOOLEAN>`   
`stdout`에 CloudFormation 템플릿을 출력하지 않습니다.  
이 옵션은 CDK 프로젝트의 `cdk.json` 파일에서 구성할 수 있습니다. 다음은 예제입니다.  

```
{
   "quiet": true
}
```
 *기본 값*: `false` <a name="ref-cli-cmd-synth-options-validation"></a>

 `--validation <BOOLEAN>`   
추가 확인을 수행하여 합성 후 생성된 CloudFormation 템플릿을 검증합니다.  
`validateOnSynth` 속성 또는 `CDK_VALIDATION` 환경 변수를 통해 이 옵션을 구성할 수도 있습니다.  
 *기본 값*: `true` 

## 예제
<a name="ref-cli-cmd-synth-examples"></a>

### 논리적 ID MyStackName을 사용하여 CDK 스택의 클라우드 어셈블리를 합성하고 CloudFormation 템플릿을 stdout에 출력
<a name="ref-cli-cmd-synth-examples-1"></a>

```
$ cdk synth MyStackName
```

### CDK 앱의 모든 스택에 대한 클라우드 어셈블리를 합성하고 cdk.out에 저장
<a name="ref-cli-cmd-synth-examples-2"></a>

```
$ cdk synth
```

### MyStackName에 대한 클라우드 어셈블리를 합성하되 종속성은 포함하지 않음
<a name="ref-cli-cmd-synth-examples-3"></a>

```
$ cdk synth MyStackName --exclusively
```

### MyStackName에 대한 클라우드 어셈블리를 합성하되 CloudFormation 템플릿을 stdout에 출력하지 않음
<a name="ref-cli-cmd-synth-examples-4"></a>

```
$ cdk synth MyStackName --quiet
```

# `cdk watch`
<a name="ref-cli-cmd-watch"></a>

배포 및 핫스왑을 수행하기 위한 변경 사항이 있는지 로컬 AWS CDK 프로젝트를 지속적으로 관찰합니다.

이 명령은 단일 명령을 통해 연속 배포와 핫스왑을 수행할 수 있다는 점을 제외하면 `cdk deploy`와 유사합니다.

이 명령은 `cdk deploy --watch`의 바로 가기입니다.

`cdk watch` 세션을 종료하려면 `Ctrl+C`를 눌러 프로세스를 중단합니다.

관찰되는 파일은 `cdk.json` 파일의 `"watch"` 설정에 따라 결정됩니다. 단일 문자열 또는 문자열 배열을 수락하는 `"include"`와 `"exclude"`라는 2개의 하위 키가 있습니다. 각 항목은 `cdk.json` 파일 위치를 기준으로 한 경로로 해석됩니다. `*`와 `**` 모두 수락됩니다.

`cdk init` 명령을 사용하여 프로젝트를 생성하는 경우 프로젝트의 `cdk.json` 파일에서 `cdk watch`에 대해 다음과 같은 기본 동작이 구성됩니다.
+  `"include"`는 `"**/*"`로 설정되어 프로젝트 루트의 모든 파일과 디렉터리를 포함합니다.
+  `"exclude"`는 선택 사항입니다. 단, 기본적으로 이미 무시된 파일과 폴더는 제외됩니다. 여기에는 `.`으로 시작하는 파일 및 디렉터리, CDK 출력 디렉터리, `node_modules` 디렉터리가 포함됩니다.

`watch`를 구성하기 위한 최소 설정은 `"watch": {}`입니다.

CDK 코드 또는 애플리케이션 코드에 배포 전 빌드 단계가 필요한 경우 `cdk watch`는 `cdk.json` 파일의 `"build"` 키로 작업합니다.

**중요**  
이 명령은 CDK 앱의 개발 단계에서 신속하게 배포하기 위한 것이며 프로덕션 배포에는 권장되지 않습니다.

`cdk deploy --hotswap`의 동일한 제한 사항이 `cdk watch`에 적용됩니다. 자세한 내용은 ` cdk deploy --hotswap ` 단원을 참조하십시오.

## 사용법
<a name="ref-cli-cmd-watch-usage"></a>

```
$ cdk watch <arguments> <options>
```

## 인수
<a name="ref-cli-cmd-watch-args"></a><a name="ref-cli-cmd-watch-args-stack-name"></a>

 **CDK 스택 ID**   
앱에서 감시하려는 CDK 스택의 구문 ID입니다.  
 *유형*: 문자열  
 *필수 항목 여부*: 아니요

## 옵션
<a name="ref-cli-cmd-watch-options"></a>

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 [글로벌 옵션](ref-cli-cmd.md#ref-cli-cmd-options)을 참조하세요.<a name="ref-cli-cmd-watch-options-build-exclude"></a>

 `--build-exclude, -E <ARRAY>`   
지정된 ID로 자산을 다시 빌드하지 않습니다.  
이 옵션은 단일 명령에서 여러 번 지정할 수 있습니다.  
 *기본값:* `[]` <a name="ref-cli-cmd-watch-options-change-set-name"></a>

 `--change-set-name <STRING>`   
생성할 CloudFormation 변경 세트의 이름입니다.<a name="ref-cli-cmd-watch-options-concurrency"></a>

 `--concurrency <NUMBER>`   
스택 간 종속성을 고려하면서 여러 스택을 병렬로 배포하고 핫스와핑합니다. 배포 속도를 높이려면 이 옵션을 사용합니다. CloudFormation 및 기타 AWS 계정 속도 제한을 고려해야 합니다.  
수행할 최대 동시 배포 수(종속성 허용)를 지정하려면 숫자를 제공합니다.  
 *기본값:* `1` <a name="ref-cli-cmd-watch-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
요청된 스택만 배포하고 종속성은 포함하지 않습니다.<a name="ref-cli-cmd-watch-options-force"></a>

 `--force, -f <BOOLEAN>`   
템플릿이 동일하더라도 항상 스택을 배포합니다.  
 *기본값:* `false` <a name="ref-cli-cmd-watch-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk watch` 명령에 대한 명령 참조 정보를 표시합니다.<a name="ref-cli-cmd-watch-options-hotswap"></a>

 `--hotswap <BOOLEAN>`   
기본적으로 `cdk watch`는 가능한 경우 핫스왑 배포를 사용하여 리소스를 업데이트합니다. CDK CLI는 핫스왑 배포를 수행하려고 시도하며 실패할 경우 전체 CloudFormation 배포로 폴백되지 않습니다. 핫스왑을 통해 업데이트할 수 없는 탐지된 모든 변경 사항은 무시됩니다.  
 *기본값:* `true` <a name="ref-cli-cmd-watch-options-hotswap-fallback"></a>

 `--hotswap-fallback <BOOLEAN>`   
기본적으로 `cdk watch`는 핫스왑 배포를 수행하려고 시도하고 CloudFormation 배포가 필요한 변경 사항을 무시합니다. hotswap 배포가 실패할 경우 `--hotswap-fallback`을 제공하여 전체 CloudFormation 배포를 폴백하고 수행합니다.<a name="ref-cli-cmd-watch-options-logs"></a>

 `--logs <BOOLEAN>`   
기본적으로 `cdk watch`는 애플리케이션의 모든 CloudWatch 로그 그룹을 모니터링하고 로그 이벤트를 로컬로 `stdout`에 스트리밍합니다.  
 *기본값:* `true` <a name="ref-cli-cmd-watch-options-progress"></a>

 `--progress <STRING>`   
CDK CLI가 배포 진행 상황을 표시하는 방법을 구성합니다.  
+  `bar` - 현재 배포 중인 리소스에 대한 이벤트와 함께 스택 배포 이벤트를 진행률 표시줄로 표시합니다.
+  `events` – 모든 CloudFormation 이벤트를 포함한 전체 기록을 제공합니다.
프로젝트의 `cdk.json` 파일이나 로컬 개발 시스템의 `~/.cdk.json`에서 이 옵션을 구성할 수도 있습니다.  

```
{
   "progress": "events"
}
```
 *유효한 값*: `bar`, `events`   
 *기본값:* `bar` <a name="ref-cli-cmd-watch-options-rollback"></a>

 `--rollback <BOOLEAN>`   
배포 중 리소스 생성 또는 업데이트에 실패하면 배포는 CDK CLI가 반환되기 전에 최신 안정 상태로 롤백됩니다. 해당 시점까지의 변경 사항은 모두 취소됩니다. 생성된 리소스는 삭제되고 적용된 업데이트는 롤백됩니다.  
`--no-rollback` 또는 `-R`을 사용하여 이 동작을 비활성화합니다. 리소스 생성 또는 업데이트에 실패하면 CDK CLI는 해당 시점까지의 변경 사항을 그대로 두고 반환됩니다. 이는 빠르게 반복하는 개발 환경에서 유용할 수 있습니다.  
`false`이면 리소스 교체를 유발하는 배포는 항상 실패합니다. 이 값은 새 리소스를 업데이트하거나 생성하는 배포에만 사용할 수 있습니다.
 *기본값:* `true` <a name="ref-cli-cmd-watch-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
기존 CDK Toolkit 스택의 이름입니다.  
기본적으로는 라는 스택`CDKToolkit`을 지정된 AWS 환경에 `cdk bootstrap` 배포합니다. 부트스트랩 스택에 다른 이름을 지정하려면 이 옵션을 사용합니다.  
CDK CLI는 이 값을 사용하여 부트스트랩 스택 버전을 확인합니다.

## 예제
<a name="ref-cli-cmd-watch-examples"></a>

### 논리적 ID DevelopmentStack이 있는 CDK 스택에서 변경 사항 확인
<a name="ref-cli-cmd-watch-examples-1"></a>

```
$ cdk watch DevelopmentStack
Detected change to 'lambda-code/index.js' (type: change). Triggering 'cdk deploy'
DevelopmentStack: deploying...

 ✅  DevelopmentStack
```

### 변경 사항 감시 대상에 포함할 항목과 제외할 항목에 대해 cdk.json 파일을 구성합니다.
<a name="ref-cli-cmd-watch-examples-2"></a>

```
{
   "app": "mvn -e -q compile exec:java",
   "watch": {
    "include": "src/main/**",
    "exclude": "target/*"
   }
}
```

### cdk.json 파일을 구성하여 배포 전 Java로 CDK 프로젝트 빌드
<a name="ref-cli-cmd-watch-examples-3"></a>

```
{
  "app": "mvn -e -q exec:java",
  "build": "mvn package",
  "watch": {
    "include": "src/main/**",
    "exclude": "target/*"
  }
}
```