Introduction
이 자습서에서는 기본 분기에 대한 결과의 백로그 Code Quality 를 살펴보고, 위험에 따라 우선 순위를 지정하고, 가장 큰 영향을 미치는 결과를 해결하고, 결과를 이해 관계자에게 전달합니다. 다음 내용을 배웁니다.
- 대시보드를 읽고 점수의 의미를 이해하는 방법입니다.
- 해결 조치의 우선순위를 정하고 자동 수정을 적용할지, Copilot 클라우드 에이전트에 위임할지 또는 탐지 결과를 무시할지 결정하는 방법.
- 수정 작업의 영향을 전달하는 방법입니다.
- 백로그가 다시 증가하지 않도록 하기 위해 수행할 수 있는 추가 조치입니다.
이것은 단계별 안내이므로 속도보다 이해를 우선합니다. 자동 수정 생성 또는 탐지 결과 무시에 대한 기본 단계는 관련 가이드(리포지토리 백로그에서 코드 품질 결과 수정)를 참조하세요.
시작하기 전에
- Code Quality 은 소유하거나 유지 관리하는 리포지토리에서 사용하도록 설정됩니다. GitHub Code Quality 사용을(를) 참조하세요.
- 최근에 Code Quality를 활성화한 경우 기본 분기에 대한 초기 CodeQL 검사가 완료될 때까지 몇 분 정도 기다리세요.
이 자습서 전체에서는 실행 예제를 사용합니다. 대시보드에 현재 코드 품질에 대한 "안정성: 불량" 및 "유지 관리 가능성: 공정"의 점수가 표시되는 리포지토리가 있습니다.
1단계: 현재 점수 평가
- 리포지토리의 Security and quality 탭으로 이동합니다.
- 코드 품질 을(를) 확장하려면 클릭하고, 그런 다음 표준 결과 을(를) 클릭합니다.
여기서 는 안정성 및 유지 관리에 대한 점수를 볼 수 있습니다.

이 점수는 기본 브랜치에서 확인된 결과를 바탕으로 계산됩니다:
| Metric | Definition | 예제 결과 |
|---|---|---|
| Reliability | 코드가 의도한 함수를 올바르게, 예측 가능하게, 일관되게 수행하는지 평가합니다. 신뢰할 수 있는 코드는 버그로부터 자유롭고, 오류를 안전하게 처리하며, 정상 및 에지 케이스 조건에서 예상대로 작동합니다. | 성능, 동시성, 오류 처리, 정확성 관련 문제 |
| 유지 관리 | 시간이 지남에 따라 코드를 이해하고 수정하고 확장하는 것이 얼마나 쉬운지 평가합니다. 유지 관리 가능한 코드는 모범 사례를 따르고, 불필요한 복잡성을 방지하며, 향후 변경 및 공동 작업의 용이성을 위해 구성됩니다. | 사용되지 않는/죽은 코드, 가독성, 복잡성, 충돌하는 명명, 우려 사항의 잘못된 분리 |
각 점수는 해당 지표에 대해 여전히 존재하는 발견 사항의 가장 높은 심각도에 따라 결정됩니다. 점수를 올리려면 현재 가장 높은 심각도 수준에서 모든 결과를 지워야 합니다.
이 예제에서는 안정성 에 영향을 주는 오류 수준 결과가 여전히 있기 때문에 안정성이 "불량"입니다. 경고 및 메모는 해결할 가치가 있지만 오류가 지워질 때까지 점수를 이동할 수 없습니다.
2단계: 규칙별로 목록을 읽고 가장 큰 영향을 주는 결과에 집중
보기에서 표준 결과 결과 규칙별로 그룹화됩니다. 이는 많은 결과를 가진 단일 규칙이 반복되는 코딩 습관을 반영할 수 있기 때문에 이해하는 데 유용합니다. 한 사례를 이해하고 나면 나머지 모든 항목에 대해 제안된 자동 수정도 더 쉽게 이해할 수 있으므로 수정 작업이 더 빨라지고 일괄 검토도 더 쉬워집니다.
또한 점수 중 하나에 대한 심각도 계층을 완료하는 규칙을 찾습니다. 규칙을 지우면 안정성에 영향을 주는 마지막 남은 "오류"가 제거되면 점수가 즉시 상승합니다.
이 예제에서는 "Overwritten property"라는 한 규칙이 128개의 탐지 항목 중 40개를 차지하며, 이 40개는 모두 Error 수준입니다. 이를 지우면 안정성에 영향을 주는 모든 오류 수준 검색이 제거되어 점수가 다음 대괄호로 이동합니다.
3단계: 결과 해결
규칙을 선택한 후에는 각 찾기를 처리하는 방법을 결정합니다.
| Assessment | 권장 작업 | 비고 |
|---|---|---|
| 발견은 합법적입니다. | ||
| 수정 생성을 클릭하고 끌어오기 요청을 엽니다. | ||
| 수정 생성을 클릭하면 AI credits이 소모됩니다. 여러 자동 수정을 같은 브랜치에 추가하여 수정 작업을 하나의 풀 리퀘스트로 묶을 수 있습니다. | ||
| 발견은 적용되지 않습니다. 예를 들어, 레거시 코드에 있거나, 의도적인 패턴이거나, 오탐일 수 있습니다. | ||
| 해제를 클릭합니다. | 발견은 확인된 것으로 간주되며 열려 있는 결과 목록에서 제거됩니다. |
이 예제에서는 "덮어쓴 속성" 탐지 항목 40개에 대한 자동 수정을 생성하고 풀 리퀘스트를 엽니다. 단일 패턴을 공유하기 때문에 수정 사항은 거의 동일합니다. CI 검사가 통과되면 끌어오기 요청을 병합합니다.
4단계: 영향 전달
수정 사항을 병합한 후 "표준 결과" 화면으로 돌아가 다음을 캡처하세요:
- 변경된 점수입니다. 예를 들어, 신뢰성: 낮음 → 보통.
- 잠금을 해제한 요구 사항입니다. 예를 들어 안정성에 영향을 주는 모든 오류 수준 결과가 해결되었습니다.
- 미해결 지적 사항의 감소. 예를 들어 128에서 88까지 열림.
이 예제에서 "덮어쓴 속성" 규칙을 지우면 안정성이 불량 에서 공정으로 이동합니다. 팀이 가리킬 수 있는 첫 번째 점수 개선 사항입니다.
이것이 코드 건전성의 다른 측면과 어떻게 관련되는지
오늘 해결한 모든 문제도 새 풀 리퀘스트에 동일한 유형의 문제가 유입되면 내일 다시 나타날 수 있습니다. 백로그 다시 생성을 중지하려면 다음을 수행합니다.
- 새 코드 품질 결과를 도입하는 끌어오기 요청을 차단하도록 기본 분기에 병합 임계값을 설정합니다. 끌어오기 요청에 대한 코드 품질 임계값 설정을(를) 참조하세요.
- 풀 리퀘스트에 지적 사항이 표시되면 수정합니다. 코드 품질 문제가 기본 브랜치에 유입되는 것을 방지하기을(를) 참조하세요.
Troubleshooting
- 수정 사항을 병합한 후에도 점수가 움직이지 않았습니다. 해당 메트릭의 현재 가장 높은 심각도 수준에서 하나 이상의 발견이 여전히 열려 있습니다.
- 스캔이 다시 실행되지 않았습니다. Code Quality 스캔은 기본 브랜치에 푸시할 때마다 자동으로 실행됩니다. 워크플로가 완료되기까지 몇 분 정도 기다립니다.
결론
이 자습서에서는 저장소의 품질 점수를 평가하고, 심각도와 규칙에 따라 백로그 작업의 우선순위를 정하고, 자동 수정을 사용해 발견된 문제를 해결하고, 그 결과를 점수 변동으로 보여주었습니다.
다음 단계
- 최근에 변경된 파일의 결과를 수정하여 기술 부채를 더 줄입니다. 최근에 병합된 파일에서 코드 품질 결과 수정을(를) 참조하세요.