{"meta":{"title":"컴파일된 언어에 대한 CodeQL 코드 검사 정보","intro":"CodeQL가 컴파일된 언어, 사용 가능한 빌드 옵션을 어떻게 분석하는지 이해하고, 필요한 경우 사용자가 데이터베이스 생성 프로세스를 지정하는 방법을 알아봅니다.","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-codeql-code-scanning-for-compiled-languages","title":"컴파일된 언어용 CodeQL"}],"documentType":"article"},"body":"# 컴파일된 언어에 대한 CodeQL 코드 검사 정보\n\nCodeQL가 컴파일된 언어, 사용 가능한 빌드 옵션을 어떻게 분석하는지 이해하고, 필요한 경우 사용자가 데이터베이스 생성 프로세스를 지정하는 방법을 알아봅니다.\n\n## CodeQL 분석 워크플로 및 컴파일된 언어에 대한 정보\n\nCode scanning은 하나 이상의 CodeQL 데이터베이스에 쿼리를 실행하여 작동합니다. 각 데이터베이스에는 사용자의 리포지토리에 있는 단일 언어로 된 코드 표현이 포함되어 있습니다. 컴파일된 언어 C/C++, C#, Go, Java, Kotlin, Rust, 및 Swift의 경우, 이 데이터베이스를 채우는 프로세스는 코드 빌드 및 데이터 추출을 수반하곤 합니다.\n\ncode scanning를 활성화하면 기본 설정과 고급 설정이 가장 간단한 방법을 사용하여 분석을 위한 CodeQL 데이터베이스를 생성합니다. C/C++, C#, Java 및 Rust의 경우 빌드(`none` 빌드 모드)를 요구하지 않고 코드베이스에서 CodeQL 데이터베이스가 직접 생성됩니다. 다른 컴파일된 언어의 경우 CodeQL는 `autobuild` 빌드 모드를 사용하여 코드베이스를 빌드합니다. 아니면 `manual` 빌드 모드를 사용하여 빌드 명령을 명시적으로 지정하여 이러한 사용자 지정 명령으로 빌드된 파일만을 분석할 수도 있습니다.\n\nCodeQL와 종속성 캐싱을 같이 사용하면 레지스트리에서 종속성을 다운로드하는 대신 GitHub Actions 캐시로 저장할 수 있습니다. 이 문서의 후반부에서 [CodeQL에 대한 종속성 캐싱에 관한 정보](#about-dependency-caching-for-codeql)를 참조하세요.\n\n## CodeQL 빌드 모드\n\nCodeQL 작업은 컴파일된 언어에 세 가지 빌드 모드를 지원합니다.\n\n* `none` - CodeQL 데이터베이스는 코드베이스를 구축하지 않고 코드베이스에서 직접 생성됩니다(모든 해석된 언어에 지원되며 C/C++, C#, Java 및 Rust에 추가로 지원됨).\n* ```\n            `autobuild` - CodeQL는 가능성이 가장 큰 빌드 방법을 탐지하고 이용하여 코드베이스를 빌드하고 분석할 데이터베이스를 생성합니다(C/C++, C#, Go, Java, Kotlin 및 Swift에서 지원됨).\n  ```\n* `manual` - 워크플로의 코드베이스에 사용할 빌드 단계를 정의합니다(C/C++, C#, Go, Java, Kotlin 및 Swift에 지원됨).\n\n언어별 `autobuild` 동작, 실행기 요구 사항 및 수동 빌드에 대한 지침은 [컴파일된 언어에 대한 CodeQL 빌드 옵션 및 단계](/ko/code-security/reference/code-scanning/codeql/codeql-build-options-and-steps-for-compiled-languages)을 참조하세요.\n\n## CodeQL용 종속성 캐싱에 관한 정보\n\nCodeQL와 종속성 캐싱을 같이 사용하면 레지스트리에서 종속성을 다운로드하는 대신 GitHub Actions 캐시로 저장할 수 있습니다. 이를 통해 타사 레지스트리가 제대로 작동하지 않을 시 경고가 손실될 위험을 줄이고, 종속성이 많거나 느린 레지스트리를 사용하는 프로젝트는 성능이 향상될 수 있습니다. 캐싱 종속성이 워크플로 속도를 높이는 방법에 대한 자세한 내용은 [종속성 캐싱 참조](/ko/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows)을 참조하세요.\n\n종속성 캐싱은 모든 빌드 모드에서 작동하며 Java, Go, C#가 지원합니다.\n\n> \\[!NOTE]\n> 종속성 캐싱을 이용하면 리포지토리에 캐시 할당량이 적용되는 CodeQL 관련 캐시가 저장됩니다.\n> [종속성 캐싱 참조](/ko/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy)을(를) 참조하세요."}