{"meta":{"title":"CodeQL을 사용하는 코드 검사 안내","intro":"CodeQL을 사용하여 코드의 취약성 및 오류를 식별할 수 있습니다. 결과가 GitHub에서 code scanning 알림으로 표시됩니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/code-security","title":"보안 및 코드 품질"},{"href":"/ko/code-security/concepts","title":"Concepts"},{"href":"/ko/code-security/concepts/code-scanning","title":"코드 검사"},{"href":"/ko/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ko/code-security/concepts/code-scanning/codeql/about-code-scanning-with-codeql","title":"CodeQL 코드 스캔"}],"documentType":"article"},"body":"# CodeQL을 사용하는 코드 검사 안내\n\nCodeQL을 사용하여 코드의 취약성 및 오류를 식별할 수 있습니다. 결과가 GitHub에서 code scanning 알림으로 표시됩니다.\n\nCodeQL은 보안 검사를 자동화하기 위해 GitHub에서 개발한 코드 분석 엔진입니다. CodeQL을 사용하여 코드를 분석하고 결과를 code scanning 경고로 표시할 수 있습니다.\n\ncode scanning에 대해 CodeQL 분석을 사용하는 세 가지 주요 방법은 다음과 같습니다.\n\n* 기본 설정을 사용하여 code scanning에 대한 CodeQL 분석을 리포지토리에서 신속하게 구성하십시오. 기본 설정은 분석할 언어, 실행할 쿼리 모음, 스캔을 트리거하는 이벤트를 자동으로 선택합니다. 원할 경우 실행할 쿼리 도구 모음과 분석할 언어를 수동으로 선택할 수 있습니다. CodeQL을(를) 사용하도록 설정하면 GitHub Actions에서 워크플로 실행을 통해 코드를 스캔합니다. 자세한 내용은 [코드 검사에 대한 기본 설정 구성](/ko/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)을(를) 참조하세요.\n\n* 고급 설정을 사용하여 CodeQL 워크플로를 리포지토리에 추가합니다. 이렇게 하면 [github/codeql-action](https://github.com/github/codeql-action/)을 사용하는 맞춤 설정 가능한 워크플로 파일이 생성되어 CodeQL CLI을(를) 실행합니다. 자세한 내용은 [코드 검사에 대한 고급 설정 구성](/ko/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-advanced-setup-for-code-scanning-with-codeql)을(를) 참조하세요.\n\n* 외부 CI 시스템에서 직접 CodeQL CLI을(를) 실행하고 결과를 GitHub에 업로드합니다. 자세한 내용은 [사용자의 기존 CI 시스템으로 코드 검색 사용하기](/ko/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system)을(를) 참조하세요.\n\ncode scanning 경고에 대한 자세한 내용은 [코드 검사 경고 정보](/ko/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts)을(를) 참조하세요.\n\n## CodeQL 정보\n\nCodeQL는 코드를 데이터처럼 처리하는 프로그래밍 언어와 관련 도구입니다. 이 기능은 기존의 정적 분석기보다 더 쉽게 코드를 분석하고 코드의 잠재적 취약점을 찾을 수 있도록 만들어졌습니다.\n\n1. CodeQL 데이터베이스를 생성하여 코드베이스를 나타냅니다.\n2. 그런 다음 해당 데이터베이스에서 CodeQL 쿼리를 실행하여 코드베이스의 문제를 식별합니다.\n3. CodeQL을 code scanning과 함께 사용할 때, 쿼리 결과는 GitHub에서 code scanning 경고로 표시됩니다.\n\nCodeQL은 컴파일 언어와 해석된 언어를 모두 지원하며, 지원 언어로 작성된 코드에서 취약성과 오류를 찾을 수 있습니다.\n\nCodeQL은 다음 언어를 지원합니다.\n\n<!-- If you update the list of supported languages for CodeQL, update docs-internal/content/get-started/learning-about-github/github-language-support.md to reflect the changes. -->\n\n* C/C++\n* C#\n* Go\n* Java/Kotlin\n* JavaScript/TypeScript\n* Python\n* 루비\n* Rust\n* Swift \\* GitHub Actions 워크플로\n\n> \\[!NOTE]\n>\n> * Java, Kotlin 또는 둘 다로 작성된 코드를 분석하는 데 `java-kotlin`을 사용합니다.\n> * JavaScript, TypeScript 또는 둘 다로 작성된 코드를 분석하는 데 `javascript-typescript`을(를) 사용합니다.\n\n자세한 내용은 CodeQL 웹 사이트의 설명서의 [지원되는 언어와 프레임워크](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/)를 참조하세요.\n\n> \\[!IMPORTANT]\n> CodeQL은 위에 나열되지 않은 언어를 지원하지 **않습니다**. 여기에는 **PHP**, **Scala** 등이 포함되지만 이에 국한되지 않습니다. 지원되지 않는 언어로 CodeQL을 사용하려고 하면 경고는 생성되지 않고 분석이 완료되지 않을 수 있습니다.\n\n## 사용자 지정 또는 틈새 프레임워크 모델링\n\nGitHub 전문가, 보안 연구원, 커뮤니티 기여자는 인기 있는 프레임워크와 라이브러리에서 데이터 흐름을 모델링하는 라이브러리를 작성합니다. 모델링되지 않은 사용자 지정 종속성을 사용하는 경우 Visual Studio Code에 대한 CodeQL 확장을 사용하여 이러한 종속성에 대한 모델을 만들고 이를 사용하여 분석을 확장할 수 있습니다. 자세한 내용은 [CodeQL 모델 편집기 사용](/ko/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/using-the-codeql-model-editor)을(를) 참조하세요.\n\n## CodeQL 쿼리\n\nGitHub 전문가, 보안 연구원 및 커뮤니티 기여자는 code scanning에 사용되는 기본 CodeQL 쿼리를 작성하고 유지 관리합니다. 쿼리는 분석을 개선하고 가양성 결과를 줄이기 위해 정기적으로 업데이트됩니다.\n\n### 사용자 고유의 쿼리 작성\n\n쿼리는 오픈 소스이므로 [github/codeql](https://github.com/github/codeql) 리포지토리에서 쿼리를 보고 기여할 수 있습니다. 자세한 내용은 CodeQL 설명서에서 [CodeQL 쿼리 정보](https://codeql.github.com/docs/writing-codeql-queries/about-codeql-queries/)를 참조하세요.\n\n### 추가 쿼리 실행\n\n고급 설정 또는 외부 CI 시스템을 사용하여 코드를 스캔하는 경우 분석의 일부로 추가 쿼리를 실행할 수 있습니다.\n\n이러한 쿼리는 리포지토리의 게시된 CodeQL 쿼리 팩 또는 CodeQL 팩에 속해야 합니다.\n\n* CodeQL 쿼리 팩이 GitHub Container registry에 게시되면 쿼리 및 컴파일 캐시에 필요한 모든 전이적 종속성이 패키지에 포함됩니다. 그러면 성능이 향상되고 새 버전의 팩 또는 CLI로 업그레이드할 때까지 팩에서 쿼리를 실행할 때마다 동일한 결과를 얻을 수 있습니다.\n\n* CodeQL 쿼리 팩은 여러 GitHub 컨테이너 레지스트리에서 다운로드할 수 있습니다. 자세한 내용은 [코드 검색을 위한 워크플로 구성 옵션](/ko/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#downloading-codeql-packs-from-github-enterprise-server)을(를) 참조하세요.\n\n자세한 내용은 [CodeQL 팩을 사용하여 분석 사용자 지정](/ko/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs)을(를) 참조하세요."}