

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

# 사용자 지정 CloudFormation 후크 프로젝트 시작
<a name="hooks-init"></a>

사용자 지정 후크 프로젝트를 생성하는 첫 번째 단계는 프로젝트를 시작하는 것입니다. CloudFormation CLI `init` 명령을 사용하여 사용자 지정 후크 프로젝트를 시작할 수 있습니다.

`init` 명령은 후크 스키마 파일을 포함하여 프로젝트 설정을 안내하는 마법사를 시작합니다. 이 스키마 파일을 후크의 셰이프와 의미 체계를 정의하기 위한 시작점으로 사용합니다. 자세한 내용은 [스키마 구문](hooks-schema.md) 단원을 참조하십시오.

**후크 프로젝트를 시작하려면:**

1. 프로젝트의 디렉터리를 생성합니다.

   ```
   mkdir ~/mycompany-testing-mytesthook
   ```

1. 새 디렉터리로 이동합니다.

   ```
   cd ~/mycompany-testing-mytesthook
   ```

1. CloudFormation CLI `init` 명령을 사용하여 프로젝트를 시작합니다.

   ```
   cfn init
   ```

   명령은 다음 출력을 반환합니다.

   ```
   Initializing new project
   ```

1. `init` 명령은 프로젝트 설정을 안내하는 마법사를 시작합니다. 메시지가 표시되면 `h`를 입력하여 후크 프로젝트를 지정합니다.

   ```
   Do you want to develop a new resource(r) a module(m) or a hook(h)?
   ```

   ```
   h
   ```

1. 후크 유형의 이름을 입력합니다.

   ```
   What's the name of your hook type?
   (Organization::Service::Hook)
   ```

   ```
   MyCompany::Testing::MyTestHook
   ```

1. 언어 플러그인이 하나만 설치된 경우 기본적으로 선택됩니다. 언어 플러그인이 두 개 이상 설치된 경우 원하는 언어를 선택할 수 있습니다. 원하는 언어의 숫자 선택을 입력합니다.

   ```
   Select a language for code generation:
   [1] java
   [2] python38
   [3] python39
   (enter an integer):
   ```

1. 선택한 개발 언어를 기반으로 패키징을 설정합니다.

------
#### [ Python ]

   (*선택 사항*) 플랫폼과 독립적인 패키징을 위해 Docker를 선택합니다. Docker는 필요하지 않지만 더 쉽게 패키징할 수 있도록 하는 것이 좋습니다.

   ```
   Use docker for platform-independent packaging (Y/n)?
   This is highly recommended unless you are experienced with cross-platform Python packaging.
   ```

------
#### [ Java ]

   Java 패키지 이름을 설정하고 코드 생성 모델을 선택합니다. 기본 패키지 이름을 사용하거나 새 패키지 이름을 생성할 수 있습니다.

   ```
   Enter a package name (empty for default 'com.mycompany.testing.mytesthook'):
   ```

   ```
   Choose codegen model - 1 (default) or 2 (guided-aws):
   ```

------

*결과*: 프로젝트를 성공적으로 시작하고 후크를 개발하는 데 필요한 파일을 생성했습니다. 다음은 Python 3.8용 후크 프로젝트를 구성하는 디렉터리 및 파일의 예입니다.

```
mycompany-testing-mytesthook.json
rpdk.log
README.md
requirements.txt
hook-role.yaml
template.yml
docs
    README.md
src
    __init__.py
    handlers.py
    models.py
    target_models
        aws_s3_bucket.py
```

**참고**  
`src` 디렉터리의 파일은 언어 선택에 따라 생성됩니다. 생성된 파일에 몇 가지 유용한 설명과 예제가 있습니다. 와 같은 일부 파일은 핸들러에 대한 런타임 코드를 추가하기 위해 `generate` 명령을 실행할 때 이후 단계에서 `models.py`자동으로 업데이트됩니다.