Skip to main content

codespace 수명 주기 이해

전체 codespace 수명 주기 동안 GitHub Codespaces 환경에서 개발하고 데이터를 유지할 수 있습니다.

이 문서에서는 생성에서 삭제에 이르기까지 codespace의 수명 단계를 설명합니다. "GitHub Codespaces에 대한 빠른 시작" 문서를 읽었으며 이제 자신의 작업에 GitHub Codespaces을(를) 사용하려는 경우 "codespace에서 개발" 아래의 문서를 참조하세요.

Codespace의 수명 주기 정보

Codespace의 수명 주기는 codespace를 만들 때 시작되고 codespace를 삭제할 때 종료됩니다. 실행 중인 프로세스에 영향을 주지 않고 활성 codespace의 연결을 끊고 다시 연결할 수 있습니다. 프로젝트에서 변경한 내용에 손실 없이 codespace를 중지하고 다시 시작할 수 있습니다.

Codespace 만들기

프로젝트에서 작업하려는 경우 새 codespace를 만들거나 기존 codespace를 열도록 선택할 수 있습니다. GitHub Codespaces에서 개발할 때마다 리포지토리의 분기에서 새 Codespace를 만들거나 기능에 대한 장기 실행 Codespace를 유지하고 싶을 수 있습니다. 새 프로젝트를 시작하는 경우 템플릿에서 codespace를 만들고 나중에 GitHub Enterprise Cloud의 리포지토리에 게시할 수 있습니다. 자세한 내용은 "리포지토리에 대한 codespace 만들기" 및 "템플릿에서 codespace 만들기"을(를) 참조하세요.

만들 수 있는 코드스페이스의 수와 동시에 실행할 수 있는 코드스페이스의 수에는 제한이 있습니다. 이러한 제한은 몇 가지 요인에 따라 달라집니다. 코드스페이스 최대 수에 도달하고 다른 코드스페이스를 만들려고 하면 기존 코드스페이스를 제거해야 새 코드스페이스를 만들 수 있다는 메시지가 표시됩니다. 마찬가지로 활성 코드스페이스의 최대 수에 도달하고 다른 코드스페이스를 시작하려고 하면 활성 코드스페이스 중 하나를 중지하라는 메시지가 표시됩니다.

프로젝트에서 작업할 때마다 새 codespace를 만들도록 선택한 경우 새 커밋이 GitHub에 있도록 변경 내용을 정기적으로 푸시해야 합니다. 프로젝트에 대해 장기 실행 codespace를 사용하도록 선택하는 경우 환경에 최신 커밋이 있도록 codespace에서 작업을 시작할 때마다 리포지토리의 기본 분기에서 끌어와야 합니다. 이 워크플로는 로컬 컴퓨터에 있는 프로젝트를 작업하는 경우와 매우 유사합니다.

리포지토리 관리자는 codespace 만들기 속도를 높이기 위해 리포지토리에서 GitHub Codespaces 사전 빌드를 사용하도록 설정할 수 있습니다. 자세한 내용은 "GitHub Codespaces 사전 빌드 관련 정보"을(를) 참조하세요.

Codespace의 변경 내용 저장

웹을 통해 codespace에 연결하면 자동 저장이 웹 편집기에서 자동으로 활성화되고 지연 후 변경 내용을 저장하도록 구성됩니다. 데스크톱에서 실행되는 Visual Studio Code를 통해 codespace에 연결하는 경우 자동 저장을 사용 설정해야 합니다. 자세한 내용은 Visual Studio Code 설명서의 저장/자동 저장을 참조하세요.

작업은 클라우드의 가상 머신에 저장됩니다. Codespace를 닫고 중지한 다음 나중에 저장된 작업으로 돌아갈 수 있습니다. 저장되지 않은 변경 내용이 있는 경우 편집기에 종료하기 전에 저장하라는 메시지가 표시됩니다. 그러나 codespace가 삭제되면 작업도 삭제됩니다. 작업을 유지하려면 변경 내용을 커밋하고 원격 리포지토리 푸시해야 하거나 템플릿에서 codespace를 만든 경우에는 작업을 새 원격 리포지토리에 게시해야 합니다. 자세한 내용은 "codespace에서 원본 제어 사용"을(를) 참조하세요.

GitHub Codespaces에 대한 시간 제한

상호 작용 없이 codespace를 실행 상태로 두거나 codespace를 명시적으로 중지하지 않고 종료하는 경우 codespace는 비활성 기간 후에 시간 초과되고 실행을 중지합니다. 기본적으로 codespace는 30분 동안 활동이 없으면 시간 제한이 적용되지만 사용자가 만든 새 codespace의 시간 제한 기간은 사용자 지정할 수 있습니다. Codespace에 대한 기본 시간 제한 설정에 대한 자세한 내용은 “Github Codespaces의 시간 제한 기간 설정”을(를) 참조하세요. Codespace를 중지하는 방법에 대한 자세한 내용은 “Codespace 중지”를 참조하세요.

Codespace가 시간 초과되면 변경 내용이 마지막으로 저장된 시점부터 데이터가 보존됩니다. 자세한 내용은 “Codespace의 변경 내용 저장”을 참조하세요.

Codespace 다시 빌드

Codespace를 다시 빌드하여 개발 컨테이너 구성에 대한 변경 내용을 구현할 수 있습니다. 대부분의 경우 codespace를 다시 빌드하는 대신 새 codespace를 만들면 됩니다. 기본적으로 codespace를 다시 빌드할 때 GitHub Codespaces은(는) 캐시의 이미지를 다시 사용하여 다시 빌드 프로세스를 가속화합니다. 대안으로, 전체 재빌드를 수행하여 캐시를 지우고 새 이미지를 이용해 컨테이너를 다시 빌드할 수도 있습니다.

참고: codespace에서 컨테이너를 다시 빌드하면 /workspaces 디렉터리 외부에서 수행한 변경 내용이 삭제됩니다. codespace을 생성한 리포지토리 또는 템플릿의 복제본을 포함하는 /workspaces 디렉터리 내에서 변경한 내용은 다시 빌드해도 유지됩니다. 자세한 내용은 "GitHub Codespaces에 대한 심층 분석"을(를) 참조하세요.

자세한 내용은 "개발 컨테이너 소개" 및 "Codespace에서 컨테이너 다시 빌드" 항목을 참조하세요.

Codespace 중지

Codespace를 언제든 중지할 수 있습니다. Codespace를 중지하면 실행 중인 모든 프로세스가 중지됩니다. Codespace에서 저장된 변경 내용은 다음에 시작할 때 계속 사용할 수 있습니다. 터미널 기록은 유지되지만, 터미널 창의 표시 콘텐츠는 codespace 세션 간에 유지되지 않습니다.

Codespace를 명시적으로 중지하지 않으면 비활성에서 시간이 초과될 때까지 계속 실행됩니다. codespace를 닫아도 codespace가 중지되지 않습니다. 예를 들어 VS Code 웹 클라이언트에서 codespace를 사용하고 브라우저 탭을 닫으면 codespace가 원격 컴퓨터에서 계속 실행됩니다. 시간 제한에 대한 자세한 내용은 "codespace 수명 주기 이해"을(를) 참조하세요.

실행 중인 codespace에서만 CPU 요금이 발생합니다. 중지된 codespace에서는 스토리지 비용만 발생합니다.

Codespace를 중지하고 다시 시작하여 변경 내용을 적용할 수 있습니다. 예를 들어 Codespace에 사용되는 컴퓨터 유형을 변경하는 경우 변경 내용이 적용되려면 이를 중지하고 다시 시작해야 합니다. 또한 Codespace를 중지하고 오류 또는 예기치 않은 오류가 발생하는 경우 다시 시작하거나 삭제하도록 선택할 수 있습니다. 자세한 내용은 "Codespace 중지 및 시작"을(를) 참조하세요.

Codespace 삭제

특정 작업에 대한 codespace를 만들고 변경 내용을 원격 분기에 푸시한 후 codespace를 안전하게 삭제할 수 있습니다.

푸시되지 않은 git 커밋이 있는 codespace를 삭제하려고 하면 편집기에서 원격 분기에 푸시되지 않은 변경 내용이 있음을 알립니다. 원하는 변경 내용을 푸시한 다음, codespace를 삭제하거나, codespace와 커밋되지 않은 변경 내용을 계속 삭제할 수 있습니다. 새 codespace를 만들지 않고 코드를 새 분기로 내보낼 수도 있습니다. 자세한 내용은 "분기로 변경 내용 내보내기"을(를) 참조하세요.

중지된 codespace는 지정된 시간 동안 비활성 상태가 유지되면 자동으로 삭제됩니다. 기본적으로 비활성 codespace는 30일 후에 삭제되지만 codespace 보존 기간은 사용자가 지정할 수 있습니다. 자세한 내용은 "Codespace의 자동 삭제 구성"을(를) 참조하세요.

Codespace를 만드는 경우 활성 상태인지 중지되었는지 여부에 관계없이 삭제될 때까지 스토리지 요금이 계속 발생합니다. 자세한 내용은 "GitHub Codespaces 청구 관련 정보"을(를) 참조하세요. Codespace를 삭제해도 월별 청구 주기에 누적되는 GitHub Codespaces에 대한 현재 청구 가능 금액이 줄어들지 않습니다. 자세한 내용은 "GitHub Codespaces 사용량 확인"을(를) 참조하세요.

Codespace 삭제에 대한 자세한 내용은 "Codespace 삭제”을(를) 참조하세요.

GitHub Codespaces을(를) 사용하는 동안 연결 상실

GitHub Codespaces은(는) 클라우드 기반 개발 환경이며 인터넷 연결이 필요합니다. Codespace에서 작업하는 동안 인터넷에 연결이 끊어지면 codespace에 액세스할 수 없습니다. 그러나 커밋되지 않은 변경 내용은 저장됩니다. 인터넷에 다시 연결하게 되면 codespace가 남아 있는 상태와 정확히 동일한 상태로 codespace에 연결할 수 있습니다. 인터넷 연결이 불안정한 경우 변경 내용을 자주 커밋하고 푸시해야 합니다.

오프라인으로 작업하는 경우가 많다는 것을 알고 있다면 devcontainer.json 파일을 VS Code를 위한 “개발 컨테이너” 익스텐션과 함께 사용하여 리포지토리에 대한 로컬 개발 컨테이너를 빌드하고 연결할 수 있습니다. 자세한 내용은 Visual Studio Code 설명서의 컨테이너 내 개발을 참조하세요.