

 AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 빌더 또는 러너 정의
<a name="build-run-debug-define-builder-runner"></a>

이 주제에서는 빌더 또는 러너를 정의하는 방법을 설명합니다. 빌더 또는 러너를 정의하기 전에 [빌더 또는 러너를 생성](build-run-debug.md#build-run-debug-create-builder-runner)했는지 확인합니다.



표시되는 빌더 또는 러너 탭에서 JSON을 사용하여 러너 또는 빌더를 정의합니다. 다음 코드를 템플릿으로 사용하여 시작합니다.

빌더의 경우 이 코드로 시작합니다.

```
{
  "cmd": [],
  "info": "",
  "env": {},
  "selector": ""
}
```

러너의 경우 이 코드로 시작합니다.

```
{
  "cmd": [],
  "script": "",
  "working_dir": "",
  "info": "",
  "env": {},
  "selector": "",
  "debugger": "",
  "debugport": ""
}
```

앞의 코드에서:
+  `cmd`:가 단일 명령으로 실행 AWS Cloud9 되도록 쉼표로 구분된 문자열 목록을 나타냅니다.

  이 명령을 AWS Cloud9 실행하면 목록의 각 문자열이 단일 공백으로 구분됩니다. 예를 들어 AWS Cloud9 는 `"cmd": [ "ls", "$file", "$args"]`로 실행되며`ls $file $args`, 여기서 AWS Cloud9 는를 현재 파일의 전체 경로`$file`로 바꾸고를 파일 이름 뒤에 입력된 인수`$args`로 바꿉니다. 자세한 내용은 이 섹션의 뒷부분에 나오는 지원되는 변수 목록을 참조하세요.
+  `script`: 러너가 터미널에서 실행하는 bash 스크립트(가독성을 위해 필요에 따라 줄 배열로 지정할 수도 있음)를 나타냅니다.
+  `working_dir`: 러너가 실행될 디렉터리를 나타냅니다.
+  `info`: 실행 시작 시 사용자에게 표시할 텍스트 문자열을 나타냅니다. 이 문자열에는와 같은 변수가 포함될 수 있습니다. `Running $project_path$file_name...`여기서 AWS Cloud9 는를 현재 파일의 디렉터리 경로`$project_path`로 바꾸고를 현재 파일의 이름 부분`$file_name`으로 바꿉니다. 이 섹션의 뒷부분에 나오는 지원되는 변수 목록을 참조하세요.
+  `env`:가 사용할 명령줄 인수의 배열 AWS Cloud9 을 나타냅니다. 예를 들면 다음과 같습니다.

  ```
  "env": {
    "LANG": "en_US.UTF-8",
    "SHLVL": "1"
  }
  ```
+  `selector`:이 러너 AWS Cloud9 에 적용되는 파일 이름을 식별하는 데 사용할 정규식을 나타냅니다. 예를 들어 Python 파일의 경우 `source.py`로 지정할 수 있습니다.
+  `debugger`:이 러너와 호환되는 AWS Cloud9 사용 가능한 디버거의 이름을 나타냅니다. 예를 들어 V8 디버거의 경우 `v8`으로 지정할 수 있습니다.
+  `debugport`: 디버깅 중에 AWS Cloud9 사용할 포트 번호를 나타냅니다. 예를 들어 사용할 포트 번호로 `15454`를 지정할 수 있습니다.

다음 표에는 사용할 수 있는 변수가 나와 있습니다.


****  

|  **변수**  |  **설명**  | 
| --- | --- | 
|   `$file_path`   |  현재 파일의 디렉터리(예: `/home/ec2-user/environment` 또는 `/home/ubuntu/environment`)  | 
|   `$file`   |  현재 파일의 전체 경로(예: `/home/ec2-user/environment/hello.py` 또는 `/home/ubuntu/environment/hello.py`)  | 
|   `$args`   |  파일 이름 뒤에 입력된 인수(예: `"5" "9"`)  | 
|   `$file_name`   |  현재 파일의 이름 부분(예: `hello.py`)  | 
|   `$file_extension`   |  현재 파일의 확장명(예: `py`)  | 
|   `$file_base_name`   |  파일 확장명을 제외한 현재 파일의 이름(예: `hello`)  | 
|   `$packages`   |  패키지 폴더의 전체 경로  | 
|   `$project`   |  현재 프로젝트 폴더의 전체 경로  | 
|   `$project_path`   |  현재 프로젝트 파일의 디렉터리(예: `/home/ec2-user/environment/` 또는 `/home/ubuntu/environment/`)  | 
|   `$project_name`   |  파일 확장명을 제외한 현재 프로젝트 파일의 이름(예: `my-demo-environment`)  | 
|   `$project_extension`   |  현재 프로젝트 파일의 확장명  | 
|   `$project_base_name`   |  파일 확장명을 제외한 현재 프로젝트 파일의 이름  | 
|   `$hostname`   |  환경의 호스트 이름(예: `192.0.2.0`)  | 
|   `$hostname_path`   |  프로젝트 파일의 상대 경로를 사용한 환경의 호스트 이름(예: `https://192.0.2.0/hello.js`)  | 
|   `$url`   |  환경에 액세스하기 위한 전체 URL(예: `https://192.0.2.0.`)  | 
|   `$port`   |  환경에 할당된 포트(예: `8080`)  | 
|   `$ip`   |  환경에 대해 프로세스를 실행할 IP 주소(예: `0.0.0.0`)  | 

예를 들어 `G++.build`라는 다음 빌더 파일은 `-o` 옵션을 사용하여 ** `g++` **명령을 실행하여 현재 파일(예:`hello.cpp`)을 객체 모듈로 컴파일하는 GCC의 빌더를 정의합니다. 그런 다음 객체 모듈을 현재 파일(예: `hello`)과 같은 이름의 프로그램에 연결합니다. 여기서 이에 해당하는 명령은 `g++ -o hello hello.cpp`입니다.

```
{
  "cmd": [ "g++", "-o", "$file_base_name", "$file_name" ],
  "info": "Compiling $file_name and linking to $file_base_name...",
  "selector": "source.cpp"
}
```

또 다른 예로서, `Python.run`이라는 다음 러너 파일은 Python을 사용하여 제공된 인수로 현재 파일을 실행하는 러너를 정의합니다. 예를 들어 현재 파일의 이름이 `hello.py`이고 인수 `5` 및 `9`가 제공된 경우 해당하는 명령은 `python hello.py 5 9`입니다.

```
{
  "cmd": [ "python", "$file_name", "$args" ],
  "info": "Running $file_name...",
  "selector": "source.py"
}
```

마지막으로, `Print Run Variables.run`이라는 다음 러너 파일은 사용 가능한 각 변수의 값을 출력한 다음 중지하는 러너를 정의합니다.

```
{
  "info": "file_path = $file_path, file = $file, args = $args, file_name = $file_name, file_extension = $file_extension, file_base_name = $file_base_name, packages = $packages, project = $project, project_path = $project_path, project_name = $project_name, project_extension = $project_extension, project_base_name = $project_base_name, hostname = $hostname, hostname_path = $hostname_path, url = $url, port = $port, ip = $ip"
}
```