# GitHub CLI에서 GitHub Codespace 사용

명령줄에서 GitHub Codespaces 명령줄 인터페이스인 gh를 사용하여 GitHub를 직접 사용할 수 있습니다.

## GitHub CLI 정보

GitHub CLI는 컴퓨터의 명령줄에서 GitHub를 사용하기 위한 오픈 소스 도구입니다. 명령줄에서 작업하는 경우 GitHub CLI을(를) 사용하여 시간을 절약하고 컨텍스트 전환을 방지할 수 있습니다. 자세한 내용은 [GitHub CLI 정보](/ko/github-cli/github-cli/about-github-cli)을(를) 참조하세요.

GitHub Codespaces에서 GitHub CLI을(를) 사용하여 다음을 수행할 수 있습니다.

* [모든 codespace를 나열하세요](#list-all-of-your-codespaces)
* [새 codespace 만들기](#create-a-new-codespace)
* [codespace의 세부 정보 보기](#view-details-of-a-codespace)
* [코드스페이스 중지하기](#stop-a-codespace)
* [Codespace 삭제하기](#delete-a-codespace)
* [codespace 이름 바꾸기](#rename-a-codespace)
* [Codespace 다시 빌드](#rebuild-a-codespace)
* [codespace로 SSH](#ssh-into-a-codespace)
* [Visual Studio Code에서 codespace 열기](#open-a-codespace-in-visual-studio-code)
* [JupyterLab에서 Codespace 열기](#open-a-codespace-in-jupyterlab)
* [코드스페이스로/에서 파일 복사](#copy-a-file-tofrom-a-codespace)
* [codespace의 포트 수정](#modify-ports-in-a-codespace)
* [코드스페이스 로그에 액세스](#access-codespace-logs)
* [원격 리소스 액세스](#access-remote-resources)
* [codespace의 컴퓨터 형식 변경](#change-the-machine-type-of-a-codespace)

## GitHub CLI 설치

GitHub CLI에 대한 설치 지침은 [GitHub CLI 리포지토리](https://github.com/cli/cli#installation)를 참조하세요.

## GitHub CLI 사용하기

`gh auth login`을 아직 수행하지 않은 경우 실행하여 GitHub 계정으로 인증합니다.

`gh`를 사용하여 GitHub Codespaces 작업을 하려면 `gh codespace SUBCOMMAND` 또는 해당 별칭 `gh cs SUBCOMMAND`를 입력합니다.

GitHub Codespaces 작업을 하는 데 사용할 수 있는 일련의 명령의 예로 다음을 수행할 수 있습니다.

* 현재 codespace를 나열하여 특정 리포지토리에 대한 codespace가 있는지 확인합니다.<br>
  `gh codespace list`
* 필요한 리포지토리 분기에 대한 새 codespace를 만듭니다.<br>
  `gh codespace create -r github/docs -b main`
* 새 codespace로 SSH합니다.<br>
  `gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq`
* 로컬 머신에 포트를 전달합니다.<br>
  `gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq`

## GitHub Codespaces에 대한 `gh` 명령

아래 섹션에서는 사용 가능한 각 작업에 대한 예제 명령을 제공합니다.

각 명령에 사용 가능한 모든 옵션에 대한 세부 정보를 포함하여 GitHub Codespaces에 대한 `gh` 명령의 전체 참조는 [gh codespace](https://cli.github.com/manual/gh_codespace)에 대한 GitHub CLI 온라인 도움말을 참조하세요. 대안적으로, 명령줄에서 일반 도움말을 보려면 `gh codespace --help`를 사용하고 특정 하위 명령에 대한 도움말을 보려면 `gh codespace SUBCOMMAND --help`를 사용합니다..

> \[!NOTE]
> 많은 명령과 함께 사용되는 `-c CODESPACE_NAME` 플래그는 선택 사항입니다. 생략하면 선택할 수 있는 codespace 목록이 표시됩니다.

### 모든 codespace를 나열하세요.

```shell
gh codespace list
```

목록에는 다른 `gh codespace` 명령에서 사용할 수 있는 각 codespace의 고유한 이름이 포함됩니다.

codespace의 분기 이름 끝에 있는 별표는 해당 codespace에 커밋되지 않거나 게시되지 않은 변경 내용이 있음을 나타냅니다.

### 새 codespace 만들기

```shell
gh codespace create -r OWNER/REPO_NAME [-b BRANCH]
```

자세한 내용은 [리포지토리에 대한 codespace 만들기](/ko/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository)을(를) 참조하세요.

### codespace의 세부 정보 보기

```shell
gh codespace view
```

이 명령을 실행하면 기존 codespace 중 하나를 선택하라는 메시지가 표시됩니다. 그리고 나서 다음 정보가 표시됩니다.

* codespace 이름
* 상태(예: "사용 가능" 또는 "종료")
* 리포지토리
* Git 상태
* codespace를 만드는 데 사용되는 개발 컨테이너 구성 파일의 경로
* 머신 형식
* 유휴 상태 시간 제한
* codespace를 만든 날짜 및 시간입니다.
* 보존 기간

자세한 내용은 [GitHub CLI 참조](https://cli.github.com/manual/gh_codespace_view)를 참조하세요.

### codespace를 중지하기

```shell
gh codespace stop -c CODESPACE-NAME
```

자세한 내용은 [GitHub Codespaces에 대한 심층 분석](/ko/codespaces/about-codespaces/deep-dive#closing-or-stopping-your-codespace)을(를) 참조하세요.

### 코드스페이스 삭제

```shell
gh codespace delete -c CODESPACE-NAME
```

자세한 내용은 [Codespace 삭제](/ko/codespaces/developing-in-a-codespace/deleting-a-codespace)을(를) 참조하세요.

### codespace 이름 바꾸기

```shell
gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'
```

자세한 내용은 [codespace 이름 바꾸기](/ko/codespaces/customizing-your-codespace/renaming-a-codespace?tool=cli)을(를) 참조하세요.

### Codespace 다시 빌드

```shell
gh codespace rebuild
```

전체 다시 빌드를 수행하려면 이 명령의 끝에 `--full`를 추가합니다. 자세한 내용은 [Codespace에서 컨테이너 다시 빌드](/ko/codespaces/developing-in-a-codespace/rebuilding-the-container-in-a-codespace)을(를) 참조하세요.

이 명령을 사용하여 codespace를 다시 작성하는 경우 현재 codespace의 시스템에 저장된 파일을 사용합니다 `devcontainer.json` . 이 문제는 파일의 현재 상태가 원본 제어에 저장되었는지 여부에 관계없이 발생합니다. 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)을(를) 참조하세요.

### codespace로 SSH

원격 codespace 머신에서 명령을 실행하려면 터미널에서 codespace로 SSH할 수 있습니다.

```shell
gh codespace ssh -c CODESPACE-NAME
```

> \[!NOTE]
> 연결하는 codespace는 SSH 서버를 실행해야 합니다. 기본 개발 컨테이너 이미지에는 자동으로 시작되는 SSH 서버가 포함됩니다. codespace가 기본 이미지에서 만들어지지 않은 경우 `devcontainer.json` 파일의 `features` 개체에 다음을 추가하여 SSH 서버를 설치하고 시작할 수 있습니다.
>
> ```jsonc
> "features": {
> // ...
> "ghcr.io/devcontainers/features/sshd:1": {
> "version": "latest"
> },
> // ...
> }
> ```
>
> `devcontainer.json` 파일과 기본 컨테이너 이미지에 대한 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)을(를) 참조하세요.

GitHub Codespaces은(는) 원활한 인증 환경을 제공하기 위해 로컬 SSH 키를 자동으로 만듭니다. 암호화를 사용하여 연결하는 방법에 대한 자세한 내용은 [`gh codespace ssh`](https://cli.github.com/manual/gh_codespace_ssh)을 참조하세요.

### Visual Studio Code에서 codespace 열기

```shell
gh codespace code -c CODESPACE-NAME
```

로컬 컴퓨터에 VS Code이(가) 설치되어 있어야 합니다. 자세한 내용은 [Visual Studio Code에서 GitHub Codespaces 사용](/ko/codespaces/developing-in-a-codespace/using-github-codespaces-in-visual-studio-code)을(를) 참조하세요.

### JupyterLab에서 Codespace 열기

```shell
gh codespace jupyter -c CODESPACE-NAME
```

열려 있는 codespace에 JupyterLab 응용 프로그램을 설치해야 합니다. 기본 개발 컨테이너 이미지에는 JupyterLab이 포함되므로 기본 이미지에서 만든 codespace는 항상 JupyterLab을 설치합니다. 기본 이미지에 대한 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#using-the-default-dev-container-configuration) 및 [`devcontainers/images`](https://github.com/devcontainers/images/tree/main/src/universal) 리포지토리를 참조하세요. 개발 컨테이너 구성에서 기본 이미지를 사용하지 않는 경우 `devcontainer.json` 파일에 `ghcr.io/devcontainers/features/python` 기능을 추가하여 JupyterLab을 설치할 수 있습니다. 옵션 `"installJupyterlab": true`를 포함해야 합니다. 자세한 내용은 `devcontainers/features` 리포지토리에서 [`python`](https://github.com/devcontainers/features/tree/main/src/python#python-python) 기능에 대한 추가 정보를 참조하세요.

### codespace로 파일 복사/코드스페이스에서 파일 복사

```shell
gh codespace cp [-r] SOURCE(S) DESTINATION
```

파일 또는 디렉터리 이름에 접두사 `remote:`를 사용하여 codespace에 있음을 나타냅니다. UNIX `cp` 명령과 마찬가지로 첫 번째 인수는 원본을 지정하고 마지막 인수는 대상을 지정합니다. 대상이 디렉터리인 경우 여러 원본을 지정할 수 있습니다. 원본이 디렉터리인 경우 `-r`(재귀) 플래그를 사용합니다.

codespace의 파일 및 디렉터리 위치는 원격 사용자의 홈 디렉터리를 기준으로 합니다.

#### 예제

* 로컬 머신에서 codespace의 `$HOME` 디렉터리로 파일을 복사합니다.

  `gh codespace cp myfile.txt remote:`

* codespace에서 리포지토리가 체크 아웃된 디렉터리에 파일을 복사합니다.

  `gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME`

* codespace에서 로컬 머신의 현재 디렉터리로 파일을 복사합니다.

  `gh codespace cp remote:myfile.txt .`

* 세 개의 로컬 파일을 codespace의 `$HOME/temp` 디렉터리에 복사합니다.

  `gh codespace cp a1.txt a2.txt a3.txt remote:temp`

* codespace에서 로컬 머신의 현재 작업 디렉터리로 세 개의 파일을 복사합니다.

  `gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .`

* 로컬 디렉터리를 codespace의 `$HOME` 디렉터리에 복사합니다.

  `gh codespace cp -r mydir remote:`

* 디렉터리를 codespace에서 로컬 머신으로 복사하여 디렉터리 이름을 변경합니다.

  `gh codespace cp -r remote:mydir mydir-localcopy`

사용할 수 있는 추가 플래그를 포함하여 `gh codespace cp` 명령에 대한 자세한 내용은 [GitHub CLI 설명서](https://cli.github.com/manual/gh_codespace_cp)를 참조하세요.

### codespace의 포트 수정

codespace의 포트를 로컬 포트로 전달할 수 있습니다. 프로세스가 실행되는 동안 포트는 전달된 상태로 유지됩니다. 포트 전달을 중지하려면 <kbd>Control</kbd>+<kbd>C</kbd>를 누릅니다.

```shell
gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME
```

전달된 포트의 세부 정보를 보려면 `gh codespace ports`를 입력 한 다음 codespace를 선택합니다.

전달된 포트의 표시 유형을 설정할 수 있습니다. 세 가지 표시 여부 설정이 있습니다.

* `private` - 자신에게만 표시됩니다. 이는 포트를 전달할 때 기본 설정입니다.
* `org` - 리포지토리를 소유한 조직의 구성원에게 표시됩니다.
* `public` - URL 및 포트 번호를 아는 모든 사용자에게 표시됩니다.

```shell
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME
```

하나의 명령을 사용하여 여러 포트에 대한 표시 유형을 설정할 수 있습니다. 예시:

```shell
gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME
```

자세한 내용은 [코드스페이스에서 포트 전달](/ko/codespaces/developing-in-a-codespace/forwarding-ports-in-your-codespace)을(를) 참조하세요.

### Codespace 로그에 액세스하기

codespace에 대한 생성 로그를 볼 수 있습니다. 이 명령을 입력하면 SSH 키에 대한 암호를 입력하라는 메시지가 표시됩니다.

```shell
gh codespace logs -c CODESPACE-NAME
```

생성 로그에 대한 자세한 내용은 [GitHub Codespaces 로그](/ko/codespaces/troubleshooting/github-codespaces-logs#creation-logs)을(를) 참조하세요.

### 원격 리소스 액세스

GitHub CLI 확장을 사용하여 codespace와 로컬 컴퓨터 간에 브리지를 만들 수 있으며, codespace는 컴퓨터에서 액세스할 수 있는 원격 리소스에 액세스할 수 있습니다. 확장 사용에 대한 자세한 내용은 [GitHub CLI 사용을 통한 원격 리소스 액세스](https://github.com/github/gh-net#codespaces-network-bridge)를 참조하세요.

> \[!NOTE]
> GitHub CLI 확장은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.

### codespace의 컴퓨터 형식 변경

```shell
gh codespace edit -m MACHINE-TYPE-NAME
```

자세한 내용은 이 [codespace에 대한 컴퓨터 유형 변경](/ko/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace)의 "GitHub CLI" 탭을 참조하세요.