{"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/dependency-graph-data","title":"종속성 그래프 데이터"}],"documentType":"article"},"body":"# 종속성 그래프에서 종속성을 인식하는 방법\n\n종속성 그래프는 매니페스트 파일을 자동으로 분석합니다. 자동으로 검색할 수 없는 종속성에 대한 데이터를 제출할 수 있습니다.\n\n종속성 그래프는 다음 메서드를 사용하여 프로젝트의 종속성을 식별할 수 있습니다.\n\n| 메서드       | 작동 방식                           |\n| --------- | ------------------------------- |\n| **정적 분석** | 리포지토리에서 매니페스트와 잠금 파일을 구문 분석합니다. |\n|           |                                 |\n| \\*\\*      |                                 |\n\n```\n          Dependabot 그래프 작업** | 워크플로를 DependabotGitHub Actions 사용하여 종속성 스냅샷 생성 |\n```\n\n\\|  |\n\\|  |\n\\| **자동 제출** | 기본 제공 GitHub Actions 워크플로를 실행하여 빌드 시간 종속성 해결 |\n|\n\\| **종속성 제출 API** | 프로그래밍 방식으로 제출하는 종속성 데이터를 허용합니다. |\n\n그래프에 종속성이 있으면 알려진 취약성에 대해 Dependabot alerts 및 Dependabot security updates을 받을 수 있습니다.\n\n## 정적 분석\n\n종속성 그래프 GitHub 를 사용하도록 설정하면 리포지토리에서 지원되는 매니페스트 파일을 검색하고 각 패키지의 이름과 버전을 구문 분석합니다. 기본 분기에서 지원되는 매니페스트 또는 잠금 파일을 변경하거나 자체 리포지토리에서 종속성이 변경되면 그래프가 업데이트됩니다.\n\n정적 분석은 다음을 식별할 수 있습니다.\n\n* 매니페스트 또는 잠금 파일에 명시적으로 정의된 **직접 종속성**\n* **간접 종속성**—이러한 직접 종속성의 종속성으로, \"전이적 종속성\"이라고도 합니다. 단, 매니페스트나 잠금 파일에 정의된 경우에만 해당하며, 빌드 시점에 해결되는 경우는 포함되지 않습니다.\n\n가장 신뢰할 수 있는 그래프의 경우 현재 사용하는 직접 및 간접 종속성의 버전을 정확히 정의하므로 잠금 파일(또는 해당 파일)을 사용해야 합니다. 또한 잠금 파일은 리포지토리의 모든 참가자가 동일한 버전을 사용하므로 코드를 더 쉽게 테스트하고 디버그할 수 있습니다. 또한 잠금 파일이 아닌 매니페스트 파일에서 유추된 간접 종속성은 취약성 검사에서 제외됩니다.\n\n## 자동 종속성을 제출\n\n일부 에코시스템은 빌드 시 간접 종속성을 확인하므로 정적 분석에서 전체 종속성 트리를 볼 수 없습니다. 리포지토리 GitHub에서 자동 종속성 제출을 활성화하면, 지원되는 에코시스템에 대한 리포지토리의 전이적 종속성을 자동으로 식별합니다.\n[종속성 그래프에서 지원되는 패키지 에코시스템](/ko/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems)을(를) 참조하세요.\n\n백그라운드에서 자동으로 종속성을 제출하는 과정에서는 전체 트리를 GitHub Actions 생성하고, 이를 종속성 제출 API을 사용하여 업로드하는 워크플로를  실행합니다. 자동 종속성 제출은 기본적으로 <c0>-에서 호스팅되는 실행기에서 실행되며 귀하의 <c1 /> 분에 포함됩니다. 필요에 따라 자체 호스팅 실행기에서 실행하거나 대형 러너 중 하나를 선택할 수 있습니다.\n\n자동 종속성 제출을 사용하도록 설정하려면 [리포지토리에 대한 자동 종속성 제출을 구성](/ko/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository)을 참조하세요.\n\n##\n\n```\n          Dependabot 그래프 작업\n\n          Dependabot 그래프 작업은 특수한 유형의 Dependabot 작업을 사용하여 종속성 스냅샷을 빌드하고 종속성 제출 API에 업로드합니다. \n          Dependabot 그래프 작업은 현재 **Go** 및 **Python** 종속성에 대해 지원됩니다.\n```\n\n지원되는 에코시스템의 Dependabot 경우 그래프 작업은 다음을 제공합니다.\n\n* 전체 전이적 종속성 커버리지로, Dependabot를 통해 정적 분석이 놓칠 수 있는 간접 종속성의 취약성을 경고할 수 있습니다.\n* 조직 또는 리포지토리 수준에서 구성된 비밀을 통해 Dependabot 프라이빗 레지스트리에 액세스합니다. 자세한 내용은 [Dependabot에 대한 개인 레지스트리 액세스 구성](/ko/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot)을(를) 참조하세요.\n* 구성된 Dependabot 비밀을 통해 액세스할 수 없는 프라이빗 패키지는 실패를 일으키지 않고 종속성 그래프에서 정상적으로 생략됩니다.\n\n이 방법은 자동 종속성 제출과 유사하지만 몇 분 동안 GitHub Actions 요금이 부과되지는 않습니다. 또한 설정한 프라이빗 레지스트리에 대한 조직 전체 구성에 Dependabot액세스할 수도 있습니다.\n\n> \\[!NOTE]\n> Dependabot 그래프 작업은 자동 종속성 제출보다 우선합니다. 예를 들어 Python 리포지토리에서 이전에 자동 종속성 제출을 사용한 경우 그래프 작업이 활성화되면 Dependabot 해당 작업이 더 이상 실행되지 않습니다. 유일한 요구 사항은 리포지토리에 종속성 그래프를 사용하도록 설정하는 것입니다.\n\n##\n\n```\n          종속성 제출 API입니다.\n```\n\n사용자 고유의 종속성 제출 API 스크립트 또는 워크플로에서 호출할 수 있습니다. 이 기능은 다음과 같은 경우에 유용합니다.\n\n* 잠금 파일에서 검색할 수 없는 전이적 종속성을 제출해야 합니다.\n* 사용자 지정 논리를 만들어야 하거나 외부 CI/CD 시스템을 사용하고 있습니다.\n\n종속성은 스냅샷 형식으로 종속성 제출 API에 제출됩니다. 리포지토리의 현재 상태를 반영하는 커밋 SHA 및 기타 메타데이터와 연결된 종속성 목록입니다.\n\n워크플로에서 API를 GitHub Actions 호출하는 경우 자동으로 종속성을 수집하고 API에 제출하는 미리 만들어진 에코시스템 작업을 사용할 수 있습니다. 그렇지 않으면 사용자 고유의 작업을 작성하거나 외부 시스템에서 API를 호출할 수 있습니다.\n\n제출된 종속성은 종속성 검토에 표시되지만, 조직의 종속성 인사이트에서는 사용할 수 *없습니다*.\n\n> \\[!NOTE]\n> 종속성 제출 API 및 종속성 검토 API는 함께 작동합니다. 즉, 종속성 검토 API에는 종속성 제출 API을(를) 통해 제출된 종속성이 포함됩니다.\n\n자세한 내용은 [종속성 제출 API 사용](/ko/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api)을(를) 참조하세요.\n\n## 우선 순위 지정\n\n리포지토리는 종속성 제출에 여러 메서드를 사용할 수 있으며, 이로 인해 동일한 패키지 매니페스트가 여러 번 검색될 수 있으며, 각 검사의 출력이 다를 수 있습니다. 종속성 그래프는 중복 제거 논리를 사용하여 출력을 구문 분석하여 각 매니페스트 파일에 대해 가장 정확한 정보의 우선 순위를 지정합니다.\n\n종속성 그래프는 다음 우선 순위 규칙을 사용하여 각 매니페스트 파일의 인스턴스를 하나만 표시합니다.\n\n1. ```\n          **사용자 제출**은 일반적으로 아티팩트 빌드 중에 생성되며, 가장 완전한 정보를 포함하고 있기 때문에 가장 높은 우선 순위를 갖습니다.\n   ```\n   * 서로 다른 감지기의 수동 스냅샷이 여러 개 있는 경우, 관련자 및 사용된 첫 번째 스냅샷을 기준으로 사전순으로 정렬됩니다.\n   * 동일한 감지기를 사용하는 두 개의 관련자가 있는 경우, 해결된 종속성이 병합됩니다. 상관 관계 및 탐지기에 대한 자세한 내용은 [종속성 제출에 대한 REST API 엔드포인트](/ko/rest/dependency-graph/dependency-submission)을 참조하세요.\n2. ```\n          **\n          Dependabot 그래프 작업의** 우선 순위는 두 번째로 높습니다. 그래프 작업을 사용할 수 있는 Dependabot 에코시스템(현재 Go 및 Python)의 경우 자동 종속성 제출보다 우선합니다.\n   ```\n3. ```\n          **자동 제출** 은 아티팩트 빌드 중에 생성되지만 사용자가 제출하지 않기 때문에 다음 우선 순위를 갖습니다.\n   ```\n4. ```\n          **정적 분석 결과**는 다른 데이터를 사용할 수 없는 경우에 사용됩니다.\n   ```"}