쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS CDK 앱

포커스 모드
AWS CDK 앱 - AWS Cloud Development Kit (AWS CDK) v2

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

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

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

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

AWS Cloud Development Kit (AWS CDK) 애플리케이션 또는 은 하나 이상의 CDK 스택 모음입니다. 스택은 AWS 리소스와 속성을 정의하는 하나 이상의 구문 모음입니다. 따라서 스택과 구문을 전체적으로 그룹화한 것을 CDK 앱이라고 합니다.

CDK 앱을 생성하는 방법

프로젝트의 애플리케이션 파일에 앱 인스턴스를 정의하여 앱을 생성합니다. 이렇게 하려면 App Construct Library에서 AWS 구문을 가져와 사용합니다. App 구문은 초기화 인수를 필요로 하지 않습니다. 루트로 사용할 수 있는 유일한 구문입니다.

AWS Construct Library의 AppStack 클래스는 고유한 구문입니다. 다른 구문과 비교하여 AWS 리소스를 자체적으로 구성하지 않습니다. 대신 다른 구문에 대한 컨텍스트를 제공하는 데 사용됩니다. AWS 리소스를 나타내는 모든 구문은 Stack 구문의 범위 내에서 직접 또는 간접적으로 정의되어야 합니다. Stack 구문은 App 구문의 범위 내에서 정의됩니다.

그런 다음 앱이 합성되어 스택에 대한 AWS CloudFormation 템플릿을 생성합니다. 다음은 예제입니다.

TypeScript
const app = new App(); new MyFirstStack(app, 'hello-cdk'); app.synth();
JavaScript
const app = new App(); new MyFirstStack(app, 'hello-cdk'); app.synth();
Python
app = App() MyFirstStack(app, "hello-cdk") app.synth()
Java
App app = new App(); new MyFirstStack(app, "hello-cdk"); app.synth();
C#
var app = new App(); new MyFirstStack(app, "hello-cdk"); app.Synth();
Go
app := awscdk.NewApp(nil) MyFirstStack(app, "MyFirstStack", &MyFirstStackProps{ awscdk.StackProps{ Env: env(), }, }) app.Synth(nil)
const app = new App(); new MyFirstStack(app, 'hello-cdk'); app.synth();

단일 앱 내의 스택은 서로의 리소스와 속성을 쉽게 참조할 수 있습니다. 는 스택 간의 종속성을 AWS CDK 추론하여 올바른 순서로 배포할 수 있습니다. 단일 cdk deploy 명령을 사용하여 앱 내에서 일부 스택이나 모든 스택을 배포할 수 있습니다.

구문 트리

구문은 App 클래스를 루트로 하여 모든 구문에 전달되는 scope 인수를 사용하여 다른 구문 내부에 정의됩니다. 이렇게 하면 AWS CDK 앱이 구문 트리라고 하는 구문 계층 구조를 정의합니다.

이 트리의 루트는 App 클래스의 인스턴스인 앱입니다. 앱 내에서 하나 이상의 스택을 인스턴스화합니다. 스택 내에서 구문을 인스턴스화하면 해당 구문이 자체적으로 트리를 따라 리소스나 구문 등을 인스턴스화할 수 있습니다.

구문은 항상 다른 구문의 범위 내에 명시적으로 정의되며, 이를 통해 구문 간에 관계가 생성됩니다. 거의 항상 this(Python: self)를 범위로 전달하여 새 구문이 현재 구문의 자식임을 나타내야 합니다. 의도된 패턴은 Construct에서 구문을 파생시킨 다음, 생성자에서 사용하는 구문을 인스턴스화하는 것입니다.

범위를 명시적으로 전달하면 이 동작이 Construct 기본 클래스 내에 완전히 포함된 상태에서 각 구문이 트리에 자신을 추가할 수 있습니다. 에서 지원하는 모든 언어에서 동일한 방식으로 작동 AWS CDK 하며 추가 사용자 지정이 필요하지 않습니다.

중요

기술적으로는 구문을 인스턴스화할 때 this 외의 일부 범위를 전달하는 것이 가능합니다. 트리의 어느 위치에서나, 심지어 같은 앱의 다른 스택에서도 구문을 추가할 수 있습니다. 예를 들어 인수로 전달되는 범위에 구문을 추가하는 mixin 스타일 함수를 작성할 수 있습니다. 여기서 실질적인 어려움은 구문에 대해 선택하는 ID가 다른 사람의 범위 내에서 고유한지 쉽게 확인할 수 없다는 것입니다. 또한 이러한 관행은 코드를 이해, 유지 관리 및 재사용하기 더 어렵게 만듭니다. 따라서 구문 트리의 일반 구조를 사용하는 것이 좋습니다.

는 트리 IDs의 루트에서 각 하위 구문까지의 경로에 있는 모든 구문의 ID를 AWS CDK 사용하여에 필요한 고유 IDs 생성합니다 AWS CloudFormation. 이 접근 방식은 기본 AWS CloudFormation에서처럼 전체 스택 내에서가 아니라 해당 범위 내에서만 구문 ID가 고유하면 된다는 의미입니다. 그러나 구문을 다른 범위로 이동하면 생성된 스택 고유 ID AWS CloudFormation 가 변경되고 동일한 리소스로 간주되지 않습니다.

구문 트리는 AWS CDK 코드에 정의한 구문과 별개입니다. 그러나 트리에서 해당 구문을 나타내는 노드에 대한 참조인 구문의 node 속성을 통해 액세스할 수 있습니다. 각 노드는 트리의 루트와 노드의 부모 범위와 자식에 대한 액세스를 제공하는 Node 인스턴스입니다.

  1. node.children - 구문의 직계 자식입니다.

  2. node.id - 범위 내 구문의 식별자입니다.

  3. node.path - 모든 부모의 ID를 포함한 구문의 전체 경로입니다.

  4. node.root - 구문 트리(앱)의 루트입니다.

  5. node.scope - 구문의 범위(부모)이거나, 노드가 루트인 경우 정의되지 않음입니다.

  6. node.scopes - 루트까지 구문의 모든 부모입니다.

  7. node.uniqueId - 트리 내의 이 구문에 대한 고유한 영숫자 식별자(기본적으로 node.path 및 해시에서 생성됨)입니다.

구문 트리는 최종 AWS CloudFormation 템플릿의 리소스에 구문이 합성되는 암시적 순서를 정의합니다. 한 리소스를 다른 리소스보다 먼저 생성해야 하는 경우 AWS CloudFormation 또는 AWS Construct Library는 일반적으로 종속성을 유추합니다. 그런 다음 리소스가 올바른 순서로 생성되었는지 확인합니다.

node.addDependency()를 사용하여 두 노드 간에 명시적 종속성을 추가할 수도 있습니다. 자세한 내용은 AWS CDK API 참조Dependencies를 참조하세요.

는 구문 트리의 모든 노드를 방문하여 각 노드에 대해 작업을 수행하는 간단한 방법을 AWS CDK 제공합니다. 자세한 내용은 측면 및 AWS CDK 단원을 참조하십시오.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.