{"meta":{"title":"리포지토리 코드의 품질 향상","intro":"코드베이스의 품질을 향상시킬 수 있도록 기본 분기에서 검색된 코드 품질 문제를 평가하고 수정합니다. 진행하면 결과적으로 리포지토리의 코드 품질 등급이 상승하는 것을 볼 수 있습니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/enterprise-cloud@latest/code-security","title":"보안 및 코드 품질"},{"href":"/ko/enterprise-cloud@latest/code-security/tutorials","title":"Tutorials"},{"href":"/ko/enterprise-cloud@latest/code-security/tutorials/improve-code-quality","title":"코드 품질 향상"},{"href":"/ko/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/improve-your-codebase","title":"코드베이스 개선"}],"documentType":"article"},"body":"# 리포지토리 코드의 품질 향상\n\n코드베이스의 품질을 향상시킬 수 있도록 기본 분기에서 검색된 코드 품질 문제를 평가하고 수정합니다. 진행하면 결과적으로 리포지토리의 코드 품질 등급이 상승하는 것을 볼 수 있습니다.\n\n> \\[!NOTE]\n> GitHub Code Quality은(는) 현재 공개 미리 보기에 있으며 변경될 수 있습니다.\n> 공개 미리 보기에서 Code Quality은(는) 요금이 청구되지 않지만 Code Quality 스캔은 GitHub Actions 분을 소모합니다.\n\n## 소개\n\n이 자습서에서는 리포지토리 전체에서 코드 상태 문제를 검토, 우선 순위 지정 및 수정하는 방법을 안내 GitHub Code Quality 합니다. 이를 통해 체계적으로 기술 부채를 줄이고 안정성 및 유지 관리를 개선하며 이해 관계자에게 영향을 전달할 수 있습니다.\n\n### 필수 조건\n\n* ```\n          Code Quality 는 리포지토리에 대해 사용하도록 설정되어 있습니다. \n          [AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality)을(를) 참조하세요.\n  ```\n* ```\n          GitHub Code Quality을(를) 처음 활성화하는 경우, 활성화 후 몇 분 동안 기본 분기의 전체 CodeQL 스캔이 완료될 때까지 기다렸는지 확인하세요.\n  ```\n\n## 1. 리포지토리의 전체 코드 상태 평가\n\n1. 리포지토리의 탭으로 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality** 이동한 다음 \"<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-review\" aria-label=\"code review\" role=\"img\"><path d=\"M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z\"></path></svg> 코드 품질\"에서 을 클릭합니다 **표준 결과**.\n2. \"표준 결과\" 대시보드의 개요는 오늘날 기본 브랜치의 상태에 대한 즉각적인 평가를 제공합니다.\n\n   * ```\n          **유지 관리 등급** 은 데드 코드, 중복, 복잡성, 누락된 설명서 및 모범 사례를 따르지 못한 결과에 대한 존재 및 심각도를 반영합니다.\n     ```\n   * ```\n          **안정성 등급** 은 코드의 정확성, 성능, 오류 처리, 동시성 및 접근성에 대한 결과의 존재 및 심각도를 반영합니다.\n     ```\n\n   ![Code Quality에 대한 \"표준 결과\" 보기에서 코드 품질 등급의 스크린샷.](/assets/images/help/code-quality/all-findings-overview-repo.png)\n\n## 2. 가장 영향력 있는 결과 식별 및 우선 순위 지정\n\n\"표준 결과\" 보기에서는 리포지토리의 기본 분기를 Code Quality가 마지막으로 스캔한 결과 목록이 표시됩니다. 이러한 결과는 다음과 같습니다.\n\n* ```\n          **규칙**별로 그룹화되므로 코드베이스에 가장 영향을 주는 문제 유형을 확인할 수 있습니다.\n  ```\n* ```\n          **심각도** 수준(\"오류\", \"경고\", \"참고\")이 할당되었습니다.\n  ```\n\n### 높은 심각도 결과에 집중\n\n대시보드 **필터를** 사용하여 가장 높은 심각도 결과(\"오류\")에 초점을 맞추고 가장 많은 문제를 생성하는 규칙을 검토합니다.\n\n![\"표준 결과\" 보기에 대한 대시보드 필터를 표시하는 스크린샷.](/assets/images/help/code-quality/standard-findings-filters.png)\n\n리포지토리의 유지 관리 가능성 또는 안정성 등급을 향상하려면 해당 메트릭에 대한 심각도가 가장 높은 모든 결과를 해결(수정 또는 해제)해야 합니다.\n\n예를 들어, 리포지토리의 \"안정성\" 메트릭을 **개선 필요**에서 **보통**으로 개선하려면 안정성에 영향을 주는 모든 **오류 수준 결과를** 해결해야 합니다. 하나 이상의 오류 수준 결과가 있는 경우 등급은 \"개선 필요\"보다 높을 수 없습니다.\n[메트릭 및 등급 참조](/ko/enterprise-cloud@latest/code-security/code-quality/reference/metrics-and-ratings)을(를) 참조하세요.\n\n## 3. 발견된 결과들의 그룹 조사 및 맥락 이해\n\n해결하려는 결과가 여러 개 있는 규칙을 식별한 후에는 더 자세히 조사하여 기본 문제를 파악할 수 있습니다.\n\n1. 규칙 이름을 클릭하여 해당 규칙에 대한 모든 결과를 자세히 볼 수 있습니다.\n\n   ![\"표준 결과\" 보기의 규칙을 보여주는 스크린샷. 규칙 이름이 진한 주황색으로 강조 표시됩니다.](/assets/images/help/code-quality/click-rule-name.png)\n\n2. ```\n          **자세히 표시**를 클릭한 다음 규칙의 설명, 권장되는 수정 사항, 코드 예제 및 참조를 검토합니다.\n   ```\n\n   ![코드 품질 규칙의 결과를 보여 주는 스크린샷 \"자세히 표시\" 텍스트가 진한 주황색으로 강조 표시됩니다.](/assets/images/help/code-quality/click-show-more.png)\n\n## 4. 수정 옵션 선택\n\n유효성, 영향 및 위험에 대해 강조 표시된 모든 결과를 평가합니다. 품질 등급을 개선하려면 각 결과를 수정하거나 해제하도록 선택하여 해결해야 합니다.\n\n### 자동 수정 생성\n\n검색 결과가 코드베이스에 유효하고 관련성이 있는 경우 제안된 수정 사항을 생성할 수 있습니다.\n\n1. 개별 찾기의 오른쪽에서 수정 생성을 클릭합니다\\*\\*<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"copilot\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg>\\*\\*.\n\n2. 제안된 변경 내용의 diff를 주의 깊게 검토하고 동의하는 경우 **끌어오기 요청 열기**를 클릭합니다.\n\n3. \"Commit autofix to branch\" 대화상자에서 \"풀 요청 열기(Open a pull request)\"를 선택한 후 **변경 내용 커밋(Commit change)** 을 클릭합니다.\n\n   > \\[!TIP]\n   > 현재는 결과 그룹에 대한 자동 접두사를 대량으로 생성할 수 없습니다.\n   >\n   > 단일 풀 리퀘스트로 여러 발견사항을 해결하려면, 위의 1단계와 2단계를 반복한 후 \"자동 수정을 브랜치에 커밋\" 대화 상자에서 첫 번째 자동 수정을 위해 이미 만든 브랜치 이름을 사용한 다음 \"풀 리퀘스트 열기\"를 선택하고 **변경 내용을 커밋**합니다.\n   >\n   > 수정 사항은 귀하의 브랜치에 대한 기존 초안 풀 리퀘스트에 추가될 예정입니다.\n\n4. 준비가 되면 끌어오기 요청 상태를 \"초안\"에서 \"검토 준비 완료\"로 변경하고 제안된 변경 내용을 신중하게 검토합니다. 끌어오기 요청을 병합하기 전에 CI 검사 및 자동화된 테스트가 완료되고 통과될 때까지 기다립니다.\n\n### 결과 해제\n\n코드베이스의 컨텍스트에서 관련이 없거나 실행 가능하지 않은 경우 찾기를 해제할 수 있습니다. 발견을 기각하는 일반적인 이유는 다음과 같습니다.\n\n* 발견은 더 이상 유지 관리되지 않는 레거시 코드에 있습니다.\n* 이는 팀의 코딩 표준에 대한 알려진 예외입니다.\n* 실제 품질 위험을 초래하지 않는 오탐입니다.\n\n관련 없는 경고를 해제하면 품질 검사를 의미 있는 문제에 집중할 수 있습니다.\n\n1. 결과를 해제하려면 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield-slash\" aria-label=\"Dismiss\" role=\"img\"><path d=\"M8.533.133a1.75 1.75 0 0 0-1.066 0l-2.091.67a.75.75 0 0 0 .457 1.428l2.09-.67a.25.25 0 0 1 .153 0l5.25 1.68a.25.25 0 0 1 .174.239V7c0 .233-.008.464-.025.694a.75.75 0 1 0 1.495.112c.02-.27.03-.538.03-.806V3.48a1.75 1.75 0 0 0-1.217-1.667L8.533.133ZM1 2.857l-.69-.5a.75.75 0 1 1 .88-1.214l14.5 10.5a.75.75 0 1 1-.88 1.214l-1.282-.928c-.995 1.397-2.553 2.624-4.864 3.608-.425.181-.905.18-1.329 0-2.447-1.042-4.049-2.356-5.032-3.855C1.32 10.182 1 8.566 1 7Zm1.5 1.086V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297.05.02.106.02.153 0 2.127-.905 3.439-1.982 4.237-3.108Z\"></path></svg>** 을 클릭합니다.\n2. 발견은 열린 결과 목록에서 사라집니다. 페이지 맨 위에 있는 \"해제됨\" 탭 아래에서 해제된 결과를 검토하고 다시 열 수 있습니다.\n\n## 5. 개선 사항 측정 및 영향 전달\n\n수정 작업이 완료되면 \"표준 결과\" 대시보드로 돌아가 업데이트된 안정성 및 유지 관리성 메트릭을 검토합니다.\n\n이해 관계자에게 미치는 영향을 전달할 때 다음을 강조 표시합니다.\n\n* \"신뢰성\" 또는 \"유지관리성\"에 대한 발견 수의 **감소**가 있습니다.\n* 안정성 또는 유지 관리 등급에 대한 **등급 변경**\n* 등급 변경을 달성하기 위해 충족된 요구 사항입니다. 예를 들어 모든 \"경고\" 수준 결과 수정으로 인해 등급이 \"공정\"에서 \"좋음\"으로 변경되었습니다.\n\n품질 등급의 개선 사항과 결과 수 감소를 사용하여 진행 상황을 보여 줍니다.\n\n## 6. 끌어오기 요청에 대한 코드 품질 표준 적용\n\n아직 설정하지 않은 경우 끌어오기 요청에 대한 품질 임계값을 설정하여 코드베이스의 상태를 줄이는 코드베이스의 변경 내용을 차단합니다.\n[끌어오기 요청에 대한 코드 품질 임계값 설정](/ko/enterprise-cloud@latest/code-security/code-quality/how-tos/set-pr-thresholds)을(를) 참조하세요.\n\n## 다음 단계\n\n* 최근에 변경된 파일의 결과를 수정하여 기술 부채를 더 줄입니다.\n  [AI를 사용하여 최근에 병합된 코드의 품질 향상](/ko/enterprise-cloud@latest/code-security/code-quality/tutorials/improve-recent-merges)을(를) 참조하세요.\n* ```\n          GitHub Code Quality에 대해 [커뮤니티 토론](https://github.com/orgs/community/discussions/177488)에서 피드백을 제공합니다.\n  ```"}