방법: 레이어 다이어그램에 대해 C 및 C++ 코드 유효성 검사

업데이트: 2010년 12월

이 Visual Studio 2010 Feature Pack을 사용하면 C 및 C++ 코드가 변경될 때 Visual Studio 2010 Ultimate에서 해당 코드에 아키텍처 제약 조건을 적용할 수 있습니다. 이 작업을 수행하려면 레이어 유효성 검사를 정기적으로 실행하여 코드의 종속성을 레이어 다이어그램의 종속성과 비교합니다. 레이어 다이어그램은 시스템의 아키텍처를 나타내며 네임스페이스, 프로젝트 및 기타 아티팩트를 논리적 추상 그룹 또는 레이어로 구성합니다. 이러한 레이어는 시스템의 주요 구성 요소나 해당 아티팩트가 수행하는 작업을 나타냅니다. C 또는 C++ 코드의 레이어 다이어그램을 만들려면 .NET 코드의 레이어 다이어그램에 대한 동일한 단계를 수행합니다. 자세한 내용은 방법: 아티팩트에서 레이어 다이어그램 만들기Visual Studio 기능 팩을 참조하십시오.

참고

이 기능을 사용하려면 Visual Studio 2010 Feature Pack을 설치해야 합니다.

이진 파일의 경우 레이어 유효성 검사가 바이너리 수준에서만 수행됩니다. 다른 유형의 아티팩트를 레이어 다이어그램에 연결할 수 있지만 레이어 유효성 검사에서는 바이너리 수준에서만 종속성을 분석합니다.

레이어 유효성 검사는 다음 작업을 수행하는 데도 유용합니다.

  • 기존 코드와 계획된 디자인 간의 차이점을 확인합니다.

  • 계획된 대로 구성되지 않거나 불필요한 종속성이 있는 코드를 찾습니다.

  • 제안된 변경 내용의 영향을 받을 수 있는 종속성을 찾습니다.

    예를 들어 레이어 다이어그램을 수정하여 잠재적인 아키텍처 변경을 나타낸 다음 코드의 유효성을 검사하여 영향을 받는 종속성을 확인할 수 있습니다.

  • 코드를 다른 디자인으로 리팩터링 또는 마이그레이션합니다.

    코드를 다른 아키텍처로 이동할 때 아직 작업이 필요한 코드 또는 종속성을 찾습니다.

이 항목에서는 C 또는 C++ 코드에 대해 레이어 유효성 검사를 실행하기 전에 충족해야 하는 요구 사항에 대해 설명합니다.

요구 사항

  • Visual C#이 Visual Studio와 함께 설치되어 있습니다.

  • 레이어 다이어그램을 사용하여 모델링 프로젝트를 만듭니다.

  • 이진 파일 종속성의 유효성을 검사하려면 모델링 프로젝트에 이진 파일을 추가합니다.

  • Team Foundation Build에서 C 및 C++ 프로젝트의 유효성을 검사하려면 Team Foundation Build 요구 사항을 참조하십시오.

이러한 요구 사항을 충족한 후 .NET 코드에 대한 동일한 단계를 수행할 수 있습니다. 이러한 단계는 방법: 레이어 다이어그램에 대해 .NET 코드 유효성 검사를 참조하십시오. C 또는 C++ 코드에서 만들어진 모델링 프로젝트 및 레이어 다이어그램과 관련된 문제는 문제 해결을 참조하십시오.

레이어 다이어그램을 사용하여 모델링 프로젝트 만들기

Visual Studio 솔루션에는 레이어 다이어그램이 있는 모델링 프로젝트가 포함되어야 합니다.

모델링 프로젝트를 만들려면

  1. 솔루션 탐색기에서 최상위 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 프로젝트를 클릭합니다.

  2. 새 프로젝트 추가 대화 상자의 설치된 템플릿에서 모델링 프로젝트를 클릭한 다음 모델링 프로젝트를 클릭합니다.

  3. 프로젝트의 이름을 바꾼 다음 확인을 클릭합니다.

    Visual Studio에서 새 모델링 프로젝트가 솔루션에 추가됩니다.

  4. 모델링 프로젝트를 저장합니다.

레이어 다이어그램을 만들려면

  1. 아키텍처 메뉴에서 새 다이어그램을 클릭하고 새 다이어그램 추가 대화 상자에서 레이어 다이어그램을 클릭합니다.

  2. 다이어그램의 이름을 바꾸고 모델링 프로젝트를 선택한 다음 확인을 클릭합니다.

    Visual Studio에서 빈 레이어 다이어그램이 모델링 프로젝트에 추가된 다음 다이어그램이 표시됩니다.

  3. 솔루션 탐색기에서 하나 이상의 C 또는 C++ 프로젝트를 레이어 다이어그램 화면으로 끌어 옵니다.

    -또는-

    아키텍처 탐색기에서 하나 이상의 이진 파일을 레이어 다이어그램 화면으로 끌어 옵니다.

    이러한 단계 중 하나를 수행하면 다음 항목도 모델링 프로젝트에 자동으로 추가됩니다.

    • 모델링 프로젝트에 대한 프로젝트 참조

    • 사용자 지정 .targets 파일을 가져오고 C 또는 C++ 코드에 대한 레이어 유효성 검사를 사용하도록 설정하는, 모델링 프로젝트(.modelproj) 파일에 대한 <Import> 요소

  4. 다른 레이어를 정의하고 이러한 레이어에 아티팩트를 연결한 다음 해당 아티팩트 간의 계획된 종속성을 나타냅니다.

    자세한 내용은 방법: 아티팩트에서 레이어 다이어그램 만들기레이어 다이어그램: 지침을 참조하십시오.

  5. 모델링 프로젝트를 저장합니다.

    중요

    모델링 프로젝트를 저장하지 않고 레이어 다이어그램만 저장한 다음 솔루션을 닫는 경우 C 또는 C++ 프로젝트 참조를 추가하고 모델링 프로젝트에 대한 사용자 지정 .targets 파일을 수동으로 가져와야 합니다. 자세한 내용은 문제 해결을 참조하십시오.

중요

Windows XP 또는 Windows 2003의 Visual Studio 2010 Ultimate에서 C 또는 C++ 코드로부터 레이어 다이어그램을 만드는 경우 사용자 지정 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을 가져오기 위해 모델링 프로젝트(.modelproj) 파일에 항목을 만드는 데 절대 경로가 사용됩니다. 이 때문에 Windows 7, Windows Vista 또는 Windows Server 2008에서 솔루션을 열려고 하면 문제가 발생할 수 있습니다. Windows XP 또는 Windows 2003에서 Visual Studio 2010 Ultimate를 실행하는 경우 Windows 7, Windows Vista 또는 Windows Server 2008의 Visual Studio 2010 Ultimate에서 만든 레이어 다이어그램을 열 수 없습니다. 이 문제를 해결하려면 문제 해결을 참조하십시오.

모델링 프로젝트에 이진 파일 추가

이진 파일 종속성의 유효성을 검사하려면 유효성을 검사할 이진 파일을 모델링 프로젝트에 수동으로 추가해야 합니다. 이러한 이진 파일은 레이어 다이어그램으로 끌어 올 때 자동으로 추가되지 않습니다.

모델링 프로젝트에 이진 파일을 추가하려면

  1. 솔루션 탐색기에서 모델링 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 기존 항목 추가를 클릭합니다.

  2. 기존 항목 추가 대화 상자에서 이진 파일을 찾아 선택한 다음 확인을 클릭합니다.

    이진 파일이 모델링 프로젝트에 나타납니다.

  3. 솔루션 탐색기에서 추가한 이진 파일을 클릭한 다음 F4 키를 눌러 속성 창을 엽니다.

  4. 각 이진 파일에서 빌드 작업 속성을 유효성 검사로 설정합니다.

Team Foundation Build 요구 사항

Team Foundation Build 서버에서 C 및 C++ 프로젝트의 유효성을 검사하려면 다음 단계를 수행해야 합니다.

  1. 프로젝트를 컴파일하려면 다음 항목이 서버에 설치되어 있는지 확인합니다.

    Visual Studio 2010 Ultimate가 서버에 설치되어 있으면 2단계와 3단계를 수행하는 대신 서버에 기능 팩을 설치할 수 있습니다. 그렇지 않으면 \<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber> 폴더가 서버에 없는 경우 이 폴더를 만들어야 합니다. 다른 위치에 기능 팩을 설치하지 않은 경우 %LocalAppData%는 대개 DriveName:\Users\UserName\AppData\Local입니다. Windows XP 또는 Windows 2003에서는 %LocalAppData% 대신 %AppData%를 사용합니다.

  2. Visual Studio 2010 Visualization and Modeling Feature Pack을 설치한 경우:

    다음 기능 팩 설치 위치의 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을 서버의 동일한 위치에 복사합니다.

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    Visual Studio 2010 Feature Pack 2를 설치한 경우:

    다음 기능 팩 설치 위치의 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

    서버의 다음 위치에 복사합니다.

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling\<InsertVisualStudioFeaturePackName>\1.0

  3. 설치한 기능 팩의 버전에 따라 다음 기능 팩 설치 위치 중 하나의 Microsoft.VisualStudio.Progression.NativeProvider.dll 파일을

    • Visual Studio 2010 Visualization and Modeling Feature Pack: %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    • Visual Studio 2010 Feature Pack 2: …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

    다음 서버 위치에 복사합니다.

    …\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Providers

문제 해결

모델링 프로젝트를 저장하지 않고 레이어 다이어그램만 저장한 다음 솔루션을 닫는 경우 다음 단계를 수행하여 C 또는 C++ 프로젝트 참조를 추가하고 모델링 프로젝트에 대한 사용자 지정 .targets 파일을 수동으로 가져와야 합니다.

작업

수행할 단계

C 또는 C++ 프로젝트 참조 추가

  1. 솔루션 탐색기에서 레이어 다이어그램이 포함된 모델링 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 클릭합니다.

    -또는-

    모델링 프로젝트에서 레이어 참조 폴더를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.

  2. 참조 추가 대화 상자에서 유효성을 검사할 프로젝트를 선택한 다음 확인을 클릭합니다.

    프로젝트 참조가 레이어 참조 폴더에 나타납니다.

사용자 지정 .targets 파일 가져오기

  1. 솔루션 탐색기에서 모델링 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 프로젝트 언로드를 클릭합니다.

  2. 모델링 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 ModelingProjectName.modelproj 편집을 클릭합니다.

  3. ModelingProjectName.modelproj 파일에서 다음 <Import> 요소를 찾습니다.

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" />

    이 <Import> 요소에서 다음 <Import> 요소를 추가합니다.

    Visual Studio 2010 Visualization and Modeling Feature Pack을 설치한 경우:

    <Import Project="$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

    참고참고
    %LocalAppData%는 일반적으로 DriveName:\Users\UserName\AppData\Local입니다.Windows XP 또는 Windows 2003에서는 %LocalAppData% 대신 %AppData%를 사용합니다.기능 팩이 다른 위치에 설치된 경우 해당 위치를 대신 사용합니다.기능 팩 설치 위치의 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을 모델링 프로젝트가 포함된 폴더에 복사할 수도 있습니다.

    Visual Studio 2010 Feature Pack 2를 설치한 경우:

    <Import Project="…$\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

  4. .modelproj 파일을 저장한 다음 닫습니다.

  5. 모델링 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 프로젝트 다시 로드를 클릭합니다.

Windows XP 또는 Windows 2003의 Visual Studio 2010 Ultimate에서 C 또는 C++ 코드로부터 레이어 다이어그램을 만드는 경우 사용자 지정 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을 가져오기 위해 모델링 프로젝트(.modelproj) 파일에 항목을 만드는 데 절대 경로가 사용됩니다. 이 때문에 Windows 7, Windows Vista 또는 Windows Server 2008에서 솔루션을 열려고 하면 문제가 발생할 수 있습니다. Windows XP 또는 Windows 2003에서 Visual Studio 2010 Ultimate를 실행하는 경우 Windows 7, Windows Vista 또는 Windows Server 2008의 Visual Studio 2010 Ultimate에서 만든 레이어 다이어그램을 열 수 없습니다.

이 문제를 해결하려면 다음 해결 방법 중 하나를 사용합니다.

  1. 다음 위치의 Microsoft.VisualStudio.Progression.NativeProvider.targets 파일을 모델링 프로젝트가 포함된 폴더에 복사합니다.

    Visual Studio 2010 Visualization and Modeling Feature Pack을 설치한 경우:

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    다른 위치에 기능 팩을 설치하지 않은 경우 %LocalAppData%는 대개 DriveName:\Users\UserName\AppData\Local입니다. Windows XP 또는 Windows 2003에서는 %LocalAppData% 대신 %AppData%를 사용합니다.

    Visual Studio 2010 Feature Pack 2를 설치한 경우:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

  2. .modelproj 파일에서 .targets 파일의 절대 경로를 상대 경로로 바꾸어 .targets 파일의 <Import> 요소를 업데이트합니다. 예를 들면 다음과 같습니다.

    <Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    

    중요

    버전 제어를 사용하는 경우 .targets 파일을 버전 제어에 체크 인해야 합니다.

-또는-

  1. Microsoft.VisualStudio.Progression.NativeProvider.dll 파일의 설치 경로를 나타내는 새 환경 변수를 만듭니다.

  2. 이 변수를 사용하여 .targets 파일을 가져옵니다.

    예를 들어 .targets 파일이 있는 위치를 가리키는 "NativeProviderTargetPath"와 같은 환경 변수를 만든 다음 <Import> 요소를 다음과 같이 업데이트할 수 있습니다.

    <Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    

    중요

    운영 체제에 따라 환경 변수를 올바르게 설정해야 합니다.

참고 항목

작업

방법: 아티팩트에서 레이어 다이어그램 만들기

방법: 레이어 다이어그램에 대해 .NET 코드 유효성 검사

개념

레이어 다이어그램: 지침

변경 기록

날짜

변경 내용

이유

2010년 12월

Visual Studio 2010 Feature Pack 2에 대한 내용을 업데이트했습니다.

향상된 기능 관련 정보