{"meta":{"title":"다중 에코시스템 업데이트","intro":"다중 에코시스템 업데이트는 여러 패키지 에코시스템의 종속성 업데이트를 단일 끌어오기 요청으로 결합하여 검토 오버헤드를 줄이고 업데이트 워크플로를 간소화합니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/code-security","title":"보안 및 코드 품질"},{"href":"/ko/code-security/concepts","title":"Concepts"},{"href":"/ko/code-security/concepts/supply-chain-security","title":"공급망 보안"},{"href":"/ko/code-security/concepts/supply-chain-security/multi-ecosystem-updates","title":"다중 에코시스템 업데이트"}],"documentType":"article"},"body":"# 다중 에코시스템 업데이트\n\n다중 에코시스템 업데이트는 여러 패키지 에코시스템의 종속성 업데이트를 단일 끌어오기 요청으로 결합하여 검토 오버헤드를 줄이고 업데이트 워크플로를 간소화합니다.\n\n## 다중 에코시스템 업데이트란?\n\n다중 에코시스템 업데이트를 사용하면 Dependabot에서 npm, Docker, Python 및 Terraform과 같은 다양한 패키지 에코시스템의 종속성 업데이트를 그룹당 단일 끌어오기 요청으로 그룹화할 수 있습니다.\n\n각 에코시스템에 대해 별도의 끌어오기 요청을 받는 대신 해당 그룹의 에코시스템에 대한 모든 업데이트를 포함하는 하나의 통합된 끌어오기 요청을 받게 됩니다.\n\n## 다중 에코시스템 업데이트 작동 방식\n\n다중 에코시스템 그룹을 구성하는 경우:\n\n1. 파일의 `multi-ecosystem-groups` 섹션에서 `dependabot.yml` 일정을 사용하여 그룹을 정의합니다.\n2. 키를 사용하여 그룹에 개별 패키지 에코시스템을 할당합니다 `multi-ecosystem-group` .\n3. 각 에코시스템에 대해 `patterns` 키를 사용하여 포함할 종속성을 지정합니다.\n4. Dependabot은 설정된 그룹 일정에 맞춰 업데이트를 점검합니다.\n5. 그룹의 모든 에코시스템에서 업데이트를 포함하는 단일 끌어오기 요청이 생성됩니다.\n6. PR은 분기 이름과 제목 모두에서 그룹 식별자를 사용합니다.\n\n## 다중 에코시스템 업데이트를 사용하는 경우\n\n다중 에코시스템 업데이트는 다음 작업에 특히 유용합니다.\n\n* 여러 기술을 사용하는 **인프라 프로젝트**(Docker, Terraform, Python 스크립트)\n* 함께 업데이트해야 하는 프런트 엔드 및 백 엔드 종속성이 있는 **전체 스택 애플리케이션**\n* 언어 간에 동기화된 프로토콜 버전이 필요한 **플랫폼 간 라이브러리**\n* 다양한 언어의 서비스가 버전 관리를 공유하는 **Monorepos**\n\n## 다중 에코시스템 및 단일 에코시스템 그룹\n\nDependabot은 두 가지 유형의 그룹화를 지원합니다.\n\n```\n          **다중 에코시스템 그룹:**\n```\n\n* 파일의 여러 `package-ecosystem` 항목에 `dependabot.yml` 파일을 걸쳐 확장하세요.\n* `patterns` 포함할 종속성을 지정하려면 키가 필요합니다.\n* `multi-ecosystem-groups` 섹션에 고유한 일정을 정의합니다.\n* 키를 `multi-ecosystem-group` 사용하여 그룹에 에코시스템 할당\n\n  ```\n          **단일 에코시스템 그룹:**\n  ```\n* 하나의 패키지 에코시스템 내에서 작업\n* `groups` 항목 내에서 `updates` 키 사용\n* 부모 `updates` 항목에서 일정 상속\n* 단일 패키지 관리자 내에서 종속성을 구성하는 데 더 적합합니다.\n\n여러 패키지 관리자 간에 업데이트를 결합하려는 경우 다중 에코시스템 그룹을 사용합니다. 단일 패키지 관리자 내에서 종속성을 구성하려는 경우 단일 에코시스템 그룹을 사용합니다(예: 모든 AWS 관련 npm 패키지 그룹화).\n\n### 구성 병합 동작\n\n일부 구성 옵션은 그룹 수준 및 에코시스템 수준에서 설정할 수 있습니다. Dependabot는 선택한 옵션에 따라 이러한 값들을 서로 다르게 조합합니다.\n\n```\n          **추가 옵션** (값이 병합됨):\n```\n\n* `assignees` - 두 수준의 모든 담당자가 끌어오기 요청에 할당됩니다.\n* `labels` - 두 수준의 모든 레이블이 끌어오기 요청에 적용됩니다.\n\n예를 들어 `@platform-team`을 그룹 수준에 할당하고 `@docker-admin`을 Docker 에코시스템 수준에 할당하는 경우, 결과적으로 생성되는 풀 리퀘스트는 `@platform-team` 및 `@docker-admin` 모두에 할당됩니다.\n\n```\n          **그룹 전용 옵션** (그룹 수준에서만 설정할 수 있음):\n```\n\n* `milestone`\n* `commit-message`\n* `target-branch`\n* `pull-request-branch-name`\n\n에코시스템 수준에서 이러한 옵션을 설정하려고 하면 구성 오류가 발생합니다.\n\n사용 가능한 모든 구성 옵션 및 해당 동작에 대한 전체 참조는 [Dependabot 옵션 참조](/ko/code-security/reference/supply-chain-security/dependabot-options-reference#multi-ecosystem-groups)을 참조하세요.\n\n## 사용 사례\n\n### 인프라 프로젝트\n\n인프라 코드는 Docker 컨테이너, 클라우드 리소스용 Terraform 및 자동화를 위한 Python 스크립트와 같은 여러 기술을 사용하는 경우가 많습니다. 이러한 업데이트를 함께 그룹화하면 검토 및 배포 조정이 간소화됩니다.\n\n```\n          **이러한 그룹을 함께 그룹화해야 하는 이유:** 인프라 변경 내용을 함께 배포해야 하는 경우가 많습니다. 각 기술에 대해 별도의 PR이 있으면 조정 오버헤드가 발생하며 단위로 배포해야 하는 사항을 추적하기가 더 어려워집니다.\n\n          **예제 시나리오:** 서비스에 대한 Docker 이미지, AWS 리소스용 Terraform 모듈 및 자동화 작업을 위한 Python 스크립트가 있습니다. 단일 주간 \"인프라\" 끌어오기 요청에는 세 가지 모두에 대한 업데이트가 포함되어 있어 인프라 변경 내용을 더 쉽게 검토하고 배포할 수 있습니다.\n```\n\n### 풀 스택 애플리케이션\n\n프런트 엔드 및 백 엔드 구성 요소가 있는 웹 애플리케이션은 호환성을 보장하고 테스트를 간소화하기 위해 종속성을 함께 업데이트하는 이점을 누릴 수 있습니다.\n\n```\n          **이러한 그룹을 함께 그룹화해야 하는 이유:** 프런트 엔드와 백 엔드는 종종 서로 의존합니다. 함께 업데이트하면 프런트 엔드 변경 내용을 병합한 다음 나중에 백 엔드 비호환성을 검색하는 대신 한 번으로 전체 애플리케이션 스택을 테스트할 수 있습니다.\n\n          **예제 시나리오:** React 프런트 엔드 및 Rails 백 엔드는 단일 \"앱 종속성\" 끌어오기 요청으로 매일 업데이트되므로 병합하기 전에 전체 애플리케이션을 함께 테스트할 수 있습니다.\n```\n\n### 플랫폼 간 라이브러리\n\n여러 언어(예: gRPC 및 프로토콜 버퍼)에서 동일한 프로토콜을 사용하는 라이브러리 또는 서비스는 모든 구현에서 라이브러리 버전을 동기화된 상태로 유지해야 합니다.\n\n```\n          **이러한 그룹을 함께 그룹화해야 하는 이유:** 프로토콜 라이브러리는 다양한 언어 구현에서 호환성을 유지해야 합니다. 함께 업데이트하면 서비스 간에 통신 오류가 발생할 수 있는 버전 불일치를 방지할 수 있습니다.\n\n          **예제 시나리오:** Node.js 및 Ruby 서비스는 모두 gRPC를 사용합니다. 단일 끌어오기 요청은 `@grpc/grpc-js` (npm) 및 `grpc` (번들러)를 함께 업데이트하여 프로토콜 호환성을 보장합니다.\n```\n\n### 여러 서비스를 사용하는 Monorepos\n\n여러 언어로 된 여러 서비스를 포함하는 대규모 리포지토리는 팀 책임 또는 배포 주기별로 업데이트를 그룹화하면 도움이 됩니다.\n\n```\n          **이러한 그룹을 함께 그룹화해야 하는 이유:** 다른 팀은 모노레포의 서로 다른 부분을 소유하고 있으며, 업데이트를 적절한 검토자에게 라우팅해야 합니다. 또는 서비스가 함께 배포되고 조정된 업데이트가 필요합니다.\n\n          **예제 시나리오:** monorepo에는 Python API 서비스, Go 작업자 서비스 및 Node.js 프런트 엔드가 있습니다. \"백 엔드 서비스\"(Python + Go) 및 \"프런트 엔드\"(Node.js)에 대해 각각 다른 일정과 담당자를 사용하여 별도의 그룹을 만듭니다.\n```\n\n## 예: 복잡한 다중 그룹 구성\n\n이 예제에서는 복잡한 프로젝트에서 다양한 업데이트 전략을 사용하여 여러 그룹을 사용하는 방법을 보여 드립니다.\n\n```yaml copy\nversion: 2\n\nmulti-ecosystem-groups:\n  # Infrastructure updates - weekly, tracked in milestone\n  infrastructure:\n    schedule:\n      interval: \"weekly\"\n    assignees: [\"@platform-team\"]\n    labels: [\"infrastructure\", \"dependencies\"]\n    milestone: 10\n\n  # Application code updates - daily, with development team\n  full-stack:\n    schedule:\n      interval: \"daily\"\n    assignees: [\"@full-stack-team\"]\n    labels: [\"full-stack\"]\n\nupdates:\n  # Docker images - infrastructure group with additional docker expertise\n  - package-ecosystem: \"docker\"\n    directory: \"/\"\n    patterns: [\"nginx\", \"redis\", \"postgres\"]\n    assignees: [\"@docker-admin\"]      # Adds to @platform-team\n    labels: [\"docker\"]                 # Adds to infrastructure, dependencies\n    multi-ecosystem-group: \"infrastructure\"\n\n  # Terraform - infrastructure group\n  - package-ecosystem: \"terraform\"\n    directory: \"/\"\n    patterns: [\"aws\", \"terraform-*\"]\n    multi-ecosystem-group: \"infrastructure\"\n\n  # Frontend - full-stack group with frontend focus\n  - package-ecosystem: \"npm\"\n    directory: \"/frontend\"\n    patterns: [\"react\", \"lodash\", \"@types/*\"]\n    labels: [\"frontend\"]               # Adds to full-stack\n    multi-ecosystem-group: \"full-stack\"\n\n  # Backend - full-stack group with backend specialist\n  - package-ecosystem: \"bundler\"\n    directory: \"/backend\"\n    patterns: [\"rails\", \"pg\", \"sidekiq\"]\n    assignees: [\"@backend-dev\"]        # Adds to @full-stack-team\n    multi-ecosystem-group: \"full-stack\"\n```\n\n## 다음 단계\n\n* [Dependabot에 대한 다중 에코시스템 업데이트 구성](/ko/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configuring-multi-ecosystem-updates)"}