다음을 통해 공유


코드 메트릭 값

코드 메트릭은 개발자가 개발 중인 코드에 대해 더 정확히 파악할 수 있도록 하는 소프트웨어 측정 방법입니다. 코드 메트릭의 이점을 활용하면 개발자는 수정해야 하거나 더욱 철저하게 테스트해야 하는 형식 및/또는 메서드를 알 수 있습니다. 개발 팀에서는 소프트웨어를 개발하는 동안 잠재적인 위험을 파악하고, 프로젝트의 현재 상태를 이해하며, 진행 상황을 추적할 수 있습니다.

소프트웨어 측정

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

  • 유지 관리 인덱스 – 코드 유지 관리 작업의 상대적인 편의성을 나타내는 0부터 100 사이의 인덱스 값을 계산합니다. 값이 크면 유지 관리 작업이 편리함을 의미합니다. 색으로 구분된 등급을 사용하면 코드에서 문제가 될 수 있는 사항을 신속하게 식별할 수 있습니다. 녹색 등급은 20에서 100 사이이며 코드의 유지 관리 편의성이 양호함을 나타냅니다. 노랑 등급은 10에서 19 사이이며 코드의 유지 관리 편의성이 중간 정도임을 나타냅니다. 빨강 등급은 0에서 9 사이이며 유지 관리 편의성이 낮음을 나타냅니다.

  • 순환 복잡성(Cyclomatic Complexity) – 코드 구조의 복잡성을 측정합니다. 순환 복잡성은 프로그램 흐름에 있는 다른 코드 경로 수를 계산하여 측정됩니다. 컨트롤의 흐름이 복잡한 프로그램에서 좋은 코드 검사 결과를 얻고 유지 관리 노력을 줄이려면 테스트를 더 많이 수행해야 합니다.

    참고

    Visual Studio 2010에서 메서드에 대한 순환 복잡성을 계산하는 과정이 이전 버전과 다른 경우도 있습니다. 자세한 내용은 코드 메트릭 문제 해결의 "Visual Studio 2010에서 코드 복잡성 계산이 변경됨" 단원을 참조하십시오.

  • 상속 수준 – 클래스 계층 구조의 루트로 확장되는 클래스 정의의 수를 나타냅니다. 계층 구조가 복잡할수록 특정 메서드 및 필드가 정의되거나 재정의되어 있는 위치를 파악하기 어렵습니다.

  • 클래스 결합 – 매개 변수, 지역 변수, 반환 형식, 메서드 호출, 제네릭 또는 템플릿 인스턴스화, 기본 클래스, 인터페이스 구현, 외부 형식에 정의된 필드, 특성 데코레이션 등을 통한 고유한 클래스의 결합을 측정합니다. 잘 설계된 소프트웨어에서는 형식과 메서드 간에 응집력은 높은 반면 결합력은 낮습니다. 결합력이 높으면 다른 형식에 대한 상호 종속성이 크기 때문에 다시 사용하거나 유지 관리하기가 어렵습니다.

  • 코드 줄 수 – 대략적인 코드의 줄 수를 나타냅니다. 이 수는 IL 코드를 기초로 계산되므로 소스 코드 파일의 줄 수와 정확히 일치하지는 않습니다. 이 수치가 매우 높으면 형식 또는 메서드의 작업 부하가 너무 크므로 서로 분리해야 할 수 있습니다. 형식이나 메서드를 유지 관리하기 어려울 수도 있습니다.

익명 메서드

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

코드 메트릭의 무명 메서드 처리 방법에 대한 자세한 내용은 무명 메서드 및 코드 분석을 참조하십시오.

생성된 코드

일부 소프트웨어 도구 및 컴파일러는 프로젝트에 추가되는 코드 및 프로젝트 개발자가 보거나 변경할 수 없는 코드를 생성합니다. 대부분의 경우 코드 메트릭에서 메트릭 값을 계산할 때는 생성된 코드를 무시합니다. 그러면 메트릭 값에 개발자가 보고 변경할 수 있는 코드가 반영됩니다.

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

참고 항목

기타 리소스

관리 코드의 복잡성 및 유지 관리 용이성 측정