다음을 통해 공유


코드 메트릭 값

최신 소프트웨어 애플리케이션의 복잡성이 증가하면 코드를 안정적이면서 유지 관리 가능하도록 만드는 것이 어려워집니다. 코드 메트릭은 개발자가 개발 중인 코드에 대해 더 정확히 파악할 수 있도록 하는 소프트웨어 측정 방법입니다. 개발자는 코드 메트릭을 활용하여 다시 작업하거나 더욱 철저하게 테스트해야 하는 형식 및/또는 메서드를 이해할 수 있습니다. 개발 팀은 잠재적인 위험을 식별하고, 프로젝트의 현재 상태를 이해하고, 소프트웨어 개발 중에 진행 상황을 추적할 수 있습니다.

개발자는 Visual Studio를 사용하여 관리 코드의 복잡성 및 유지 관리 가능성을 측정하는 코드 메트릭 데이터를 생성할 수 있습니다. 전체 솔루션 또는 단일 프로젝트에 대해 코드 메트릭 데이터를 생성할 수 있습니다.

Visual Studio에서 코드 메트릭 데이터를 생성하는 방법에 대한 자세한 내용은 방법: 코드 메트릭 데이터 생성을 참조하세요.

소프트웨어 측정값

다음 목록에서는 Visual Studio에서 계산하는 코드 메트릭 결과를 보여 줍니다.

  • Maintainability Index유지 관리 인덱스 - 코드 유지 관리의 상대적 용이성을 나타내는 0에서 100 사이의 인덱스 값을 계산합니다. 값이 높을수록 유지 관리가 더욱 용이합니다. 색으로 구분된 등급은 코드에서 문제 지점을 빠르게 식별하는 데 사용할 수 있습니다. 녹색 등급은 20에서 100 사이이며, 코드 유지 관리가 양호하다는 것을 나타냅니다. 노란색 등급은 10에서 19 사이이며, 코드 유지 관리가 보통 수준임을 나타냅니다. 빨간색 등급은 0에서 9 사이이며, 유지 관리가 어려움을 나타냅니다. 자세한 내용은 유지 관리 인덱스 범위 및 의미를 참조하세요.

  • 순환 복잡성 - 코드의 구조적 복잡성을 측정합니다. 프로그램의 흐름에서 다양한 코드 경로의 수를 계산하여 생성됩니다. 복잡한 제어 흐름이 있는 프로그램에는 양호한 코드 검사를 달성하기 위해 더 많은 테스트가 필요하며 유지 관리가 덜 필요합니다. 자세한 내용은 순환 복잡성 을 참조하세요.

  • 상속 수준 - 기본 클래스에 이르기까지 서로 상속되는 여러 클래스의 수를 나타냅니다. 상속 수준은 기본 클래스의 변경이 상속된 클래스에 영향을 줄 수 있다는 점에서 클래스 결합과 비슷합니다. 이 숫자가 높을수록 상속 수준이 높고 기본 클래스의 수정이 호환성이 손상되는 변경으로 이어질 가능성이 높습니다. 상속 수준의 경우 낮은 값은 양호하고 높은 값은 좋지 않습니다. 자세한 내용은 상속을 참조하세요.

  • 클래스 결합 - 매개 변수, 지역 변수, 반환 형식, 메서드 호출, 제네릭 또는 템플릿 인스턴스화, 기본 클래스, 인터페이스 구현, 외부 형식에 정의된 필드 및 특성 장식을 통해 고유한 클래스에 대한 결합을 측정합니다. 좋은 소프트웨어 디자인은 형식과 메서드에 높은 응집력과 낮은 결합이 있어야 합니다. 높은 결합은 다른 형식에 대한 상호 종속성이 많기 때문에 다시 사용 및 유지 관리하기 어려운 디자인을 나타냅니다. 자세한 내용은 클래스 결합을 참조하세요.

  • 소스 코드 줄 - 빈 줄을 포함하여 원본 파일에 있는 소스 코드 줄의 정확한 수를 나타냅니다. 이 메트릭은 Visual Studio 2019 버전 16.4 및 Microsoft.CodeAnalysis.Metrics(2.9.5)부터 사용할 수 있습니다.

  • 실행 코드 줄 수 - 실행 코드 줄 또는 작업의 대략적인 수를 나타냅니다. 실행 코드의 작업 수입니다. 이 메트릭은 Visual Studio 2019 버전 16.4 및 Microsoft.CodeAnalysis.Metrics(2.9.5)부터 사용할 수 있습니다. 값은 일반적으로 레거시 모드에서 사용되는 MSIL 명령 기반 메트릭인 이전 메트릭, 코드 줄과 거의 일치합니다.

무명 메서드

무명 메서드는 이름이 없는 메서드입니다. 무명 메서드는 코드 블록을 대리자 매개 변수로 전달하는 데 가장 자주 사용됩니다. 메서드나 접근자 등 멤버에 선언된 무명 메서드에 대한 코드 메트릭 결과는 메서드를 선언하는 멤버와 연결됩니다. 메서드를 호출하는 멤버와 연결되지 않습니다.

생성된 코드

일부 소프트웨어 도구 및 컴파일러에서는 프로젝트에 추가되고 프로젝트 개발자에게 표시되지 않거나 변경하지 않아야 하는 코드를 생성합니다. 대부분의 경우 코드 메트릭은 메트릭 값을 계산할 때 생성된 코드를 무시합니다. 이렇게 하면 메트릭 값이 개발자가 보고 변경할 수 있는 내용을 반영할 수 있습니다.

Windows Forms에 대해 생성된 코드는 개발자가 보고 변경할 수 있는 코드이므로 무시되지 않습니다.