{"meta":{"title":"CodeQL 쿼리 팩","intro":"CodeQL code scanning 설정 시, 기본으로 제공되는 다양한 CodeQL 쿼리 도구 모음 중에서 원하는 것을 선택하여 사용할 수 있습니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/enterprise-server@3.20/code-security","title":"보안 및 코드 품질"},{"href":"/ko/enterprise-server@3.20/code-security/concepts","title":"Concepts"},{"href":"/ko/enterprise-server@3.20/code-security/concepts/code-scanning","title":"코드 검사"},{"href":"/ko/enterprise-server@3.20/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ko/enterprise-server@3.20/code-security/concepts/code-scanning/codeql/codeql-query-packs","title":"CodeQL 쿼리 팩"}],"documentType":"article"},"body":"# CodeQL 쿼리 팩\n\nCodeQL code scanning 설정 시, 기본으로 제공되는 다양한 CodeQL 쿼리 도구 모음 중에서 원하는 것을 선택하여 사용할 수 있습니다.\n\n> \\[!NOTE]\n> 이 문서에서는 CodeQL CLI 2.23.9 번들에서 사용할 수 있는 기능을 GitHub Enterprise Server 3.20의 초기 릴리스에 포함되어 있습니다.\n>\n> 사이트 관리자가 CodeQL CLI 버전을 최신 릴리스로 업데이트한 경우 최신 기능에 대한 자세한 내용은 이 문서의 [GitHub Enterprise Cloud 버전](/ko/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/codeql-query-packs)을 참조하세요.\n\n## CodeQL 팩에 대해\n\nCodeQL 팩을 사용하면 CodeQL 쿼리와 라이브러리를 작성하고 공유할 수 있으며, 이를 실행하여 다양하게 활용할 수 있습니다. CodeQL 분석을 사용자 지정하기 위해 다른 사용자가 만든 팩을 다운로드한 후 코드베이스에서 실행할 수 있습니다.\n\n각 CodeQL 팩에는 루트 디렉터리에 다음을 지정하는 `qlpack.yml` 파일이 필요합니다.\n\n* 쿼리를 컴파일하는 방법\n* 다른 CodeQL 팩 및 라이브러리에 대한 종속성\n* 쿼리 도구 모음 정의\n\n속성에 대한 `qlpack.yml` 자세한 내용은 [CodeQL 팩을 사용하여 분석 사용자 지정](/ko/enterprise-server@3.20/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#codeqlpack-yml-properties)을 참조하세요.\n\n또한 CodeQL 팩에는 다음이 포함될 수 있습니다.\n\n* 사용자 지정 쿼리(`.ql` 파일)\n* 라이브러리 파일\n* 쿼리 도구 모음\n* 메타데이터\n\nCodeQL CLI 번들에는 GitHub 전문가, 보안 연구원 및 커뮤니티 기여자들이 유지 관리하는 쿼리가 포함되어 있습니다. 다른 조직에서 개발한 쿼리를 실행하려면 CodeQL 쿼리 팩을 통해 효율적이고 안정적으로 다운로드하고 실행할 수 있으며, 모델 팩(공개 미리 보기)을 활용하면 기본적으로 지원되지 않는 라이브러리 및 프레임워크를 인식하도록 code scanning 분석을 확장할 수 있습니다.\n\n## CodeQL 팩 유형\n\nCodeQL 팩은 쿼리 팩, 라이브러리 팩, 모델 팩의 세 가지 유형으로 구성됩니다.\n\n* 쿼리 팩은 CodeQL 데이터베이스에 대해 실행할 수 있는 사전 컴파일된 쿼리들을 모아놓은 것입니다. 쿼리 팩은 실행되도록 설계되었습니다. 쿼리 팩이 게시되면 번들에 쿼리 원본 외에도 각 쿼리의 모든 전이적 종속성과 미리 컴파일된 표현이 포함됩니다. 이렇게 하면 팩에서 쿼리를 일관되고 효율적으로 실행할 수 있습니다.\n\n* 라이브러리 팩은 쿼리 자체를 포함하지 않으며, 쿼리 팩이나 다른 라이브러리 팩에서 활용할 수 있도록 설계되었습니다. 라이브러리는 별도로 컴파일되지 않습니다.\n\n* code scanning 분석의 범위를 넓히기 위해 모델 팩을 활용하여 기본적으로 지원되지 않는 라이브러리와 프레임워크를 인식할 수 있습니다. 현재 공개 미리 보기 상태인 모델 팩은 향후 변경될 수 있습니다. 공개 미리 보기 단계에서 모델 팩을 C/C++, C#, Java/Kotlin, Python, Ruby 및 Rust 분석에 활용할 수 있습니다. 자신만의 모델 팩을 만드는 자세한 내용은 [CodeQL 팩 만들기 및 작업](/ko/enterprise-server@3.20/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack)에서 확인합니다.\n\n## 쿼리 팩을 찾을 수 있는 위치\n\n지원되는 모든 언어에 대한 표준 CodeQL 팩이 [Container registry](https://github.com/orgs/codeql/packages)에 게시됩니다. CodeQL CLI를 표준 방식으로 설치했다면, 번들에 포함된 핵심 쿼리 팩을 이미 다운로드하여 바로 사용할 수 있습니다. 그들은 다음과 같습니다.\n\n* `codeql/cpp-queries`\n* `codeql/csharp-queries`\n* `codeql/go-queries`\n* `codeql/java-queries`\n* `codeql/javascript-queries`\n* `codeql/python-queries`\n* `codeql/ruby-queries`\n* `codeql/swift-queries`\n\n게시된 쿼리 팩이 다양한 CodeQL 릴리스와 어떻게 호환되는지 확인하려면 [CodeQL 쿼리 팩 참조](/ko/enterprise-server@3.20/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility)을 참고하시기 바랍니다.\n\nCodeQL CLI를 활용하면 독자적인 CodeQL 팩을 생성하고, 필요한 종속성을 추가하며, 이를 설치하거나 업데이트할 수 있습니다.\n\n## CodeQL 팩을 게시하고 공유하기\n\n사용자 지정 쿼리를 더 광범위한 CodeQL 커뮤니티와 공유하려면 다음과 같이 합니다.\n\n* GitHub Packages에 게시: 다른 사용자가 검색하고 사용할 수 있도록 팩을 공개합니다.\n* CodeQL 리포지토리에 기여: 공식 리포지토리에 끌어오기 요청을 열어, 더 넓은 커뮤니티에 도움이 될 쿼리를 제출하세요.\n\nCodeQL 팩의 게시 및 다운로드에 관한 자세한 정보는 [CodeQL 팩 게시 및 사용](/ko/enterprise-server@3.20/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs)을 참고하시기 바랍니다.\n\nCodeQL에 기여하는 방법에 대한 자세한 내용은 [CodeQL에 기여](https://github.com/github/codeql/blob/main/CONTRIBUTING.md)를 참조하세요."}