{"meta":{"title":"배포 환경 관리","intro":"배포 보호 규칙을 사용하여 환경을 만들고 해당 환경을 보호할 수 있습니다. 환경을 참조하는 작업은 환경의 비밀 정보에 접근하거나 작업을 실행하기 전에 환경에 대한 모든 보호 규칙을 따르야 합니다.","product":"GitHub Actions","breadcrumbs":[{"href":"/ko/actions","title":"GitHub Actions"},{"href":"/ko/actions/how-tos","title":"사용법"},{"href":"/ko/actions/how-tos/deploy","title":"배포"},{"href":"/ko/actions/how-tos/deploy/configure-and-manage-deployments","title":"배포 구성 및 관리"},{"href":"/ko/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments","title":"환경 관리"}],"documentType":"article"},"body":"# 배포 환경 관리\n\n배포 보호 규칙을 사용하여 환경을 만들고 해당 환경을 보호할 수 있습니다. 환경을 참조하는 작업은 환경의 비밀 정보에 접근하거나 작업을 실행하기 전에 환경에 대한 모든 보호 규칙을 따르야 합니다.\n\n## 필수 조건\n\n> \\[!NOTE]\n> 계획이 있는 GitHub Free 사용자는 공용 리포지토리에 대한 환경만 구성할 수 있습니다. 리포지토리를 퍼블릭에서 프라이빗으로 변환하는 경우 구성된 보호 규칙 또는 환경 비밀은 무시되며 환경을 구성할 수 없습니다. 리포지토리를 다시 퍼블릭으로 변환하는 경우 이전에 구성된 보호 규칙 및 환경 비밀에 액세스할 수 있습니다.\n>\n> GitHub Team이 있는 조직과 GitHub Pro이 있는 사용자는 개인 리포지토리에 대한 환경을 구성할 수 있습니다. 자세한 내용은 [GitHub 계획](/ko/get-started/learning-about-github/githubs-plans)을(를) 참조하세요.\n\n* 환경에 대한 일반적인 내용은 [GitHub Actions 사용하여 배포](/ko/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-environments)을(를) 참조하세요.\n* 사용 가능한 규칙에 대한 정보는 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments)을(를) 참조하세요.\n\n## 환경 만들기\n\n개인 계정 리포지토리에서 환경을 구성하려면 리포지토리 소유자여야 합니다. 조직 리포지토리에서 환경을 구성하려면 `admin` 액세스 권한이 있어야 합니다.\n\n> \\[!NOTE]\n>\n> * 비공개 리포지토리에서 환경을 생성하는 기능은 GitHub Team이 있는 조직과 GitHub Pro이 있는 사용자가 사용할 수 있습니다.\n> * 환경에 대한 일부 기능은 프라이빗 리포지토리에 대한 가용성이 없거나 제한됩니다. 아래 지침에 설명된 기능에 액세스할 수 없는 경우 관련 단계에서 연결된 설명서에서 가용성 정보를 확인하세요.\n\n1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.\n2. 리포지토리 이름 아래에서 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**를 클릭합니다. \"설정\" 탭이 표시되지 않으면 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** 드롭다운 메뉴를 선택한 다음 **설정**을 클릭합니다.\n\n   ![탭을 보여 주는 리포지토리 헤더의 스크린샷. \"설정\" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/repository/repo-actions-settings.png)\n3. 왼쪽 사이드바에서 **환경**을 클릭합니다.\n4. **새 환경**을 클릭합니다.\n5. 환경의 이름을 입력한 다음 **환경 구성**을 클릭합니다. 환경 이름은 대/소문자를 구분하지 않습니다. 환경 이름은 255자를 초과하지 않아야 하며 리포지토리 내에서 고유해야 합니다.\n6. 필요에 따라 이 환경을 사용하는 워크플로 작업을 승인해야 하는 사용자 또는 팀을 지정합니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#required-reviewers)을(를) 참조하세요.\n   1. **필수 검토자**를 선택합니다.\n   2. 최대 6명 또는 팀을 입력합니다. 작업을 계속하려면 필수 검토자 중 한 명만 작업을 승인하면 됩니다.\n   3. 필요에 따라 사용자가 트리거한 워크플로 실행을 승인하지 못하도록 하려면 **자체 검토 방지**를 선택합니다.\n   4. **보호 규칙 저장**을 클릭합니다.\n7. 필요에 따라 이 환경을 사용하는 워크플로 작업을 계속 진행하도록 허용하기 전에 대기할 시간을 지정합니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#wait-timer)을(를) 참조하세요.\n   1. **대기 타이머**를 선택합니다.\n   2. 대기할 시간(분)을 입력합니다.\n   3. **보호 규칙 저장**을 클릭합니다.\n8. 필요에 따라 구성된 보호 규칙을 바이패스하지 않도록 설정할 수 있습니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#allow-administrators-to-bypass-configured-protection-rules)을(를) 참조하세요.\n   1. **관리자가 구성된 보호 규칙을 무시하도록 허용**을 선택 취소합니다.\n   2. **보호 규칙 저장**을 클릭합니다.\n9. 선택적으로 GitHub Apps로 생성된 사용자 지정 배포 보호 규칙을 활성화합니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#custom-deployment-protection-rules)을(를) 참조하세요.\n   1. 사용하도록 설정할 사용자 지정 보호 규칙을 선택합니다.\n   2. **보호 규칙 저장**을 클릭합니다.\n10. 필요에 따라 이 환경에 배포할 수 있는 분기 및 태그를 지정합니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#deployment-branches-and-tags)을(를) 참조하세요.\n    1. **배포 분기** 드롭다운에서 원하는 옵션을 선택합니다.\n\n    2. **Selected branches and tags**를 선택한 경우 새 규칙을 추가하려면 **배포 브랜치 또는 태그 규칙 추가**를 클릭합니다.\n\n    3. \"참조 유형\" 드롭다운 메뉴에서 적용하려는 규칙에 따라 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-git-branch\" aria-label=\"git-branch\" role=\"img\"><path d=\"M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z\"></path></svg> 브랜치** 또는 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-tag\" aria-label=\"tag\" role=\"img\"><path d=\"M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z\"></path></svg> 태그**를 클릭합니다.\n\n    4. 허용하려는 분기 또는 태그의 이름 패턴을 입력합니다.\n\n       > \\[!NOTE]\n       > 이름 패턴은 분기나 태그에 대해 개별적으로 구성해야 합니다.\n\n    5. **규칙 추가**를 클릭합니다.\n11. 필요에 따라 환경 비밀을 추가합니다. 해당 비밀은 환경을 사용하는 워크플로 작업에서만 사용할 수 있습니다. 또한 이 환경을 사용하는 워크플로 작업은 구성된 규칙(예: 필수 검토자)이 통과한 후에만 해당 비밀에 액세스할 수 있습니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#environment-secrets)을(를) 참조하세요.\n    1. **환경 비밀**에서 **비밀 추가**를 클릭합니다.\n    2. 비밀 이름을 입력합니다.\n    3. 비밀 값을 입력합니다.\n    4. **비밀 추가**를 클릭합니다.\n12. 필요에 따라 환경 변수를 추가합니다. 이러한 변수는 환경을 사용하는 워크플로 작업에서만 사용할 수 있으며 [`vars`](/ko/actions/reference/workflows-and-actions/contexts#vars-context) 컨텍스트를 통해서만 액세스할 수 있습니다. 자세한 내용은 [배포 및 환경](/ko/actions/reference/workflows-and-actions/deployments-and-environments#environment-variables)을(를) 참조하세요.\n    1. **환경 변수**에서\\*\\* 변수 추가\\*\\*를 클릭합니다.\n    2. 변수 이름을 입력합니다.\n    3. 변수 값을 입력합니다.\n    4. **변수 추가**를 클릭합니다.\n\nREST API를 통해 환경을 만들고 구성할 수도 있습니다. 자세한 내용은 [배포 환경을 위한 REST API 엔드포인트](/ko/rest/deployments/environments), [GitHub Actions의 비밀을 위한 REST API 끝점](/ko/rest/actions/secrets), [GitHub Actions 변수에 대한 REST API 엔드포인트](/ko/rest/actions/variables), [배포 분기 정책에 대한 REST API 엔드포인트](/ko/rest/deployments/branch-policies)을 참조하세요.\n\n존재하지 않는 환경을 참조하는 워크플로를 실행하면 참조된 이름을 가진 환경이 생성됩니다. 암시적 페이지 빌드를 실행하여 환경을 만드는 경우(예: 분기 또는 폴더 원본에서) 원본 분기가 환경에 보호 규칙으로 추가됩니다. 그렇지 않으면 새로 만든 환경에는 보호 규칙이나 비밀이 구성되지 않습니다. 리포지토리에서 워크플로를 편집할 수 있는 사람은 누구나 워크플로 파일을 통해 환경을 만들 수 있지만 리포지토리 관리자만 환경을 구성할 수 있습니다.\n\n## 환경 삭제\n\n개인 계정 리포지토리에서 환경을 구성하려면 리포지토리 소유자여야 합니다. 조직 리포지토리에서 환경을 구성하려면 `admin` 액세스 권한이 있어야 합니다.\n\n환경을 삭제하면 환경과 연결된 모든 비밀 및 보호 규칙이 삭제됩니다. 삭제된 환경의 보호 규칙으로 인해 현재 대기 중인 모든 작업은 자동으로 실패합니다.\n\n1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.\n2. 리포지토리 이름 아래에서 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**를 클릭합니다. \"설정\" 탭이 표시되지 않으면 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** 드롭다운 메뉴를 선택한 다음 **설정**을 클릭합니다.\n\n   ![탭을 보여 주는 리포지토리 헤더의 스크린샷. \"설정\" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/repository/repo-actions-settings.png)\n3. 왼쪽 사이드바에서 **환경**을 클릭합니다.\n4. 삭제하려는 환경 옆에 있는 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-trash\" aria-label=\"Delete environment\" role=\"img\"><path d=\"M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z\"></path></svg>을 클릭합니다.\n5. **이해했습니다. 이 환경을 삭제합니다**를 클릭합니다.\n\nREST API를 통해 환경을 삭제할 수도 있습니다. 자세한 내용은 [리포지토리에 대한 REST API 엔드포인트](/ko/rest/repos#environments)을(를) 참조하세요.\n\n## 환경과 배포 간의 관계\n\n환경을 참조하는 워크플로 작업이 실행되면 환경 이름으로 설정된 `environment` 속성이 있는 배포 개체를 만듭니다. 워크플로가 진행됨에 따라 환경 이름으로 설정된 `environment` 속성, 환경의 URL로 설정된 `environment_url` 속성(워크플로에 지정된 경우), 작업의 상태로 설정된 `state` 속성이 있는 배포 상태 개체도 만듭니다.\n\nREST API 또는 GraphQL API를 통해 해당 개체에 액세스할 수 있습니다. 해당 웹후크 이벤트를 구독할 수도 있습니다. 자세한 내용은 [리포지토리에 대한 REST API 엔드포인트](/ko/rest/repos#deployments), [Deployments](/ko/graphql/reference/deployments#object-deployment)(GraphQL API), [웹후크 이벤트 및 페이로드](/ko/webhooks/webhook-events-and-payloads#deployment)을(를) 참조하세요.\n\n## 다음 단계\n\nGitHub Actions 에서는 배포를 관리하기 위한 몇 가지 기능을 제공합니다. 자세한 내용은 [GitHub Actions 사용하여 배포](/ko/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments)을(를) 참조하세요."}