Share via


코드 모델링 및 분석(Visual C#)

업데이트: 2007년 11월

소프트웨어 개발자가 기본 아키텍처를 잘 알지 못하는 소스 코드를 사용하여 작업해야 하는 경우는 드물지 않습니다. 소스 코드를 너무 오래 전에 작성하여 그 작동 방식을 완전히 기억할 수 없거나 소스 코드를 다른 개발자가 작성한 경우 등을 예로 들 수 있습니다. 이진 형식으로만 사용할 수 있는 라이브러리의 내용을 이해하려면 또 다른 일반 시나리오가 필요합니다. Visual C#에서는 이진 어셈블리를 비롯하여 소스 코드의 형식과 형식 관계를 모델링, 분석 및 이해하기 위한 다음과 같은 도구를 제공합니다.

  • 형식 사이의 상속 및 연결 관계를 시각적으로 표현하는 클래스 디자이너

  • COM 개체를 비롯한 네이티브 DLL과 .NET Framework 어셈블리에서 내보낸 형식, 메서드 및 이벤트를 검사하기 위한 개체 브라우저

  • 관리되는 어셈블리의 형식 정보를 사용자의 고유한 프로젝트에서 소스 코드처럼 표시하기 위한 소스로서의 메타데이터

이러한 도구 이외에도 Visual Studio Team System에는 코드의 여러 가지 잠재적인 문제를 조사하기 위한 관리 코드에 대한 코드 분석 도구가 포함되어 있습니다.

클래스 디자이너

클래스 디자이너는 소프트웨어 응용 프로그램이나 구성 요소에서 형식 사이의 관계를 시각적으로 모델링하기 위한 그래픽 도구입니다. 이 도구를 사용하여 새 형식을 디자인하거나 기존 형식을 리팩터링 또는 삭제할 수도 있습니다. 다음 그림에서는 간단한 클래스 디자인을 보여 줍니다.

클래스 디자이너 다이어그램

프로젝트에 클래스 다이어그램을 추가하려면 프로젝트 메뉴에서 새 항목 추가를 클릭한 다음 클래스 다이어그램을 클릭합니다.

자세한 내용은 클래스와 형식 디자인 및 보기를 참조하십시오.

개체 브라우저

개체 브라우저를 사용하면 COM 개체를 비롯하여 네이티브 DLL과 관리되는 DLL 모두의 형식 정보를 볼 수 있습니다. 개체 브라우저에 표시되는 정보는 클래스 뷰에 표시되는 정보와 비슷하지만 개체 브라우저를 사용하면 사용자의 고유한 프로젝트에서 참조되는 DLL뿐만 아니라 시스템의 모든 DLL을 검사할 수 있습니다. 또한 개체 브라우저에는 선택한 형식에 대한 XML 문서 주석도 표시됩니다. 다음 그림에서는 이진 파일의 형식 정보가 개체 브라우저에 표시되는 방식을 보여 줍니다.

시스템 타이머를 보여 주는 개체 브라우저

자세한 내용은 개체 브라우저를 참조하십시오.

소스로서의 메타데이터

소스로서의 메타데이터 기능을 사용하면 관리되는 어셈블리의 클래스에 대한 형식 정보를 사용자의 고유한 프로젝트에서 소스 코드처럼 볼 수 있습니다. 이렇게 하면 실제 소스 코드에 대한 액세스 권한이 없더라도 클래스의 모든 public 메서드에 대한 시그니처를 간편하게 볼 수 있습니다.

예를 들어, 코드 편집기에 System.Console.WriteLine() 문을 입력하는 경우 Console 내에 삽입 지점을 놓은 다음 마우스 오른쪽 단추를 클릭하고 정의로 이동을 선택하면 Console 클래스의 선언이 포함된 소스 코드 파일 형식의 내용이 표시됩니다. 이 선언은 리플렉션을 사용하여 어셈블리의 메타데이터에서 생성되며, 메서드의 구현을 노출하지 않더라도 현재 작성된 모든 XML 문서 주석을 표시합니다.

개체 브라우저에서 관리되는 형식을 선택하고 보기 메뉴에서 코드 정의 창을 클릭하여 소스로서의 메타데이터 기능을 사용할 수도 있습니다.

자세한 내용과 그림은 소스로서의 메타데이터를 참조하십시오.

관리 코드에 대한 코드 분석

관리 코드에 대한 코드 분석 도구는 관리되는 어셈블리를 분석하고 Microsoft .NET Framework 디자인 지침에 설정되어 있는 프로그래밍 및 디자인 규칙 위반, 잠재적 보안 문제 등과 같은 정보를 보고합니다. 이 정보는 경고로 표시됩니다. 프로젝트 디자이너에서 이 도구를 사용하려면 솔루션 탐색기에서 속성을 마우스 오른쪽 단추로 클릭하고 열기를 선택합니다.

자세한 내용은 프로젝트 디자이너, 코드 분석관리 코드에 대한 코드 분석 개요를 참조하십시오.

참고 항목

개념

코드 편집(Visual C#)

참조

리플렉션(C# 프로그래밍 가이드)

기타 리소스

Visual C# IDE 사용

클래스 라이브러리 개발을 위한 디자인 지침

예외 디자인 지침

멤버 디자인 지침

형식 디자인 지침