{"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/raise-your-quality-rating","title":"품질 점수 올리기"}],"documentType":"article"},"body":"# 리포지토리의 코드 품질 점수 올리기\n\n가장 큰 위험을 초래하는 결과의 우선 순위를 지정하고 해결하며, 리포지토리의 코드 품질 점수를 높이고, 새 부채가 누적되지 않도록 방지합니다.\n\n## Introduction\n\n이 자습서에서는 기본 분기에 대한 결과의 백로그 Code Quality 를 살펴보고, 위험에 따라 우선 순위를 지정하고, 가장 큰 영향을 미치는 결과를 해결하고, 결과를 이해 관계자에게 전달합니다. 다음 내용을 배웁니다.\n\n* 대시보드를 읽고 점수의 의미를 이해하는 방법입니다.\n* 해결 조치의 우선순위를 정하고 자동 수정을 적용할지, Copilot cloud agent에 위임할지 또는 탐지 결과를 무시할지 결정하는 방법.\n* 수정 작업의 영향을 전달하는 방법입니다.\n* 백로그가 다시 증가하지 않도록 하기 위해 수행할 수 있는 추가 조치입니다.\n\n이것은 단계별 안내이므로 속도보다 이해를 우선합니다. 자동 수정 생성 또는 탐지 결과 무시에 대한 기본 단계는 관련 가이드([리포지토리 백로그에서 코드 품질 결과 수정](/ko/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/fix-backlog-findings))를 참조하세요.\n\n### 시작하기 전에\n\n* Code Quality 은 소유하거나 유지 관리하는 리포지토리에서 사용하도록 설정됩니다.\n  [GitHub Code Quality 사용](/ko/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/enable-code-quality)을(를) 참조하세요.\n* 최근에 Code Quality를 활성화한 경우 기본 분기에 대한 초기 CodeQL 검사가 완료될 때까지 몇 분 정도 기다리세요.\n\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** 탭으로 이동합니다.\n2. **<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> 코드 품질** 을(를) 확장하려면 클릭하고, 그런 다음 **표준 결과** 을(를) 클릭합니다.\n\n여기서 **는 안정성** 및 **유지 관리에** 대한 점수를 볼 수 있습니다.\n\n![표준 결과에 대한 \"Code Quality\" 보기에서 코드 품질 점수의 스크린샷입니다.](/assets/images/help/code-quality/all-findings-overview-repo.png)\n\n이 점수는 기본 브랜치에서 확인된 결과를 바탕으로 계산됩니다:\n\n| Metric          | Definition                                                                                                              | 예제 결과                                           |\n| --------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |\n| **Reliability** | 코드가 의도한 함수를 올바르게, 예측 가능하게, 일관되게 수행하는지 평가합니다. 신뢰할 수 있는 코드는 버그로부터 자유롭고, 오류를 안전하게 처리하며, 정상 및 에지 케이스 조건에서 예상대로 작동합니다.       | 성능, 동시성, 오류 처리, 정확성 관련 문제                       |\n| **유지 관리**       | 시간이 지남에 따라 코드를 이해하고 수정하고 확장하는 것이 얼마나 쉬운지 평가합니다. 유지 관리 가능한 코드는 모범 사례를 따르고, 불필요한 복잡성을 방지하며, 향후 변경 및 공동 작업의 용이성을 위해 구성됩니다. | 사용되지 않는/죽은 코드, 가독성, 복잡성, 충돌하는 명명, 우려 사항의 잘못된 분리 |\n\n각 점수는 해당 지표에 대해 여전히 존재하는 발견 사항의 *가장 높은* 심각도에 따라 결정됩니다. 점수를 올리려면 현재 가장 높은 심각도 수준에서 모든 결과를 지워야 합니다.\n\n이 예제에서는 **안정성** 에 영향을 주는 **오류** 수준 결과가 여전히 있기 때문에 안정성이 \"불량\"입니다. 경고 및 메모는 해결할 가치가 있지만 오류가 지워질 때까지 점수를 이동할 수 없습니다.\n\n## 2단계: 규칙별로 목록을 읽고 가장 큰 영향을 주는 결과에 집중\n\n보기에서 표준 결과 결과 **규칙별로 그룹**화됩니다. 이는 많은 결과를 가진 단일 규칙이 반복되는 코딩 습관을 반영할 수 있기 때문에 이해하는 데 유용합니다. 한 사례를 이해하고 나면 나머지 모든 항목에 대해 제안된 자동 수정도 더 쉽게 이해할 수 있으므로 수정 작업이 더 빨라지고 일괄 검토도 더 쉬워집니다.\n\n또한 점수 중 하나에 대한 심각도 계층을 완료하는 규칙을 찾습니다. 규칙을 지우면 안정성에 영향을 주는 마지막 남은 \"오류\"가 제거되면 점수가 즉시 상승합니다.\n\n이 예제에서는 \"Overwritten property\"라는 한 규칙이 128개의 탐지 항목 중 40개를 차지하며, 이 40개는 모두 Error 수준입니다. 이를 지우면 안정성에 영향을 주는 모든 오류 수준 검색이 제거되어 점수가 다음 대괄호로 이동합니다.\n\n## 3단계: 결과 해결\n\n규칙을 선택한 후에는 각 찾기를 처리하는 방법을 결정합니다.\n\n| Assessment                                                                              | 권장 작업                                 | 비고 |\n| --------------------------------------------------------------------------------------- | ------------------------------------- | -- |\n| 발견은 합법적입니다.                                                                             |                                       |    |\n| **수정 생성**을 클릭하고 끌어오기 요청을 엽니다.                                                           |                                       |    |\n| **수정 생성**을 클릭하면 AI credits이 소모됩니다. 여러 자동 수정을 같은 브랜치에 추가하여 수정 작업을 하나의 풀 리퀘스트로 묶을 수 있습니다. |                                       |    |\n| 발견은 적용되지 않습니다. 예를 들어, 레거시 코드에 있거나, 의도적인 패턴이거나, 오탐일 수 있습니다.                              |                                       |    |\n| **해제**를 클릭합니다.                                                                          | 발견은 확인된 것으로 간주되며 열려 있는 결과 목록에서 제거됩니다. |    |\n\n이 예제에서는 \"덮어쓴 속성\" 탐지 항목 40개에 대한 자동 수정을 생성하고 풀 리퀘스트를 엽니다. 단일 패턴을 공유하기 때문에 수정 사항은 거의 동일합니다. CI 검사가 통과되면 끌어오기 요청을 병합합니다.\n\n## 4단계: 영향 전달\n\n수정 사항을 병합한 후 \"표준 결과\" 화면으로 돌아가 다음을 캡처하세요:\n\n* **변경된 점수입니다.** 예를 들어, *신뢰성: 낮음 → 보통*.\n* **잠금을 해제한 요구 사항입니다.** 예를 들어 *안정성에 영향을 주는 모든 오류 수준 결과가 해결되었습니다*.\n* **미해결 지적 사항의 감소.** 예를 들어 *128에서 88까지 열림*.\n\n이 예제에서 \"덮어쓴 속성\" 규칙을 지우면 안정성이 **불량** 에서 **공정**으로 이동합니다. 팀이 가리킬 수 있는 첫 번째 점수 개선 사항입니다.\n\n## 이것이 코드 건전성의 다른 측면과 어떻게 관련되는지\n\n오늘 해결한 모든 문제도 새 풀 리퀘스트에 동일한 유형의 문제가 유입되면 내일 다시 나타날 수 있습니다. 백로그 다시 생성을 중지하려면 다음을 수행합니다.\n\n* 새 코드 품질 결과를 도입하는 끌어오기 요청을 차단하도록 **기본 분기에 병합 임계값을 설정합니다**.\n  [끌어오기 요청에 대한 코드 품질 임계값 설정](/ko/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/set-pr-thresholds)을(를) 참조하세요.\n* **풀 리퀘스트에 지적 사항이 표시되면 수정합니다**.\n  [코드 품질 문제가 기본 브랜치에 유입되는 것을 방지하기](/ko/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/catch-issues-before-merge)을(를) 참조하세요.\n\n## Troubleshooting\n\n* **수정 사항을 병합한 후에도 점수가 움직이지 않았습니다.** 해당 메트릭의 현재 가장 높은 심각도 수준에서 하나 이상의 발견이 여전히 열려 있습니다.\n* **스캔이 다시 실행되지 않았습니다.**\n  Code Quality 스캔은 기본 브랜치에 푸시할 때마다 자동으로 실행됩니다. 워크플로가 완료되기까지 몇 분 정도 기다립니다.\n\n## 결론\n\n이 자습서에서는 저장소의 품질 점수를 평가하고, 심각도와 규칙에 따라 백로그 작업의 우선순위를 정하고, 자동 수정을 사용해 발견된 문제를 해결하고, 그 결과를 점수 변동으로 보여주었습니다.\n\n## 다음 단계\n\n* 최근에 변경된 파일의 결과를 수정하여 기술 부채를 더 줄입니다.\n  [최근에 병합된 파일에서 코드 품질 결과 수정](/ko/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/fix-findings-in-recent-merges)을(를) 참조하세요."}