다음을 통해 공유


코드에서 종속성 다이어그램 만들기

소프트웨어 시스템의 전반적인 논리적 아키텍처를 시각화하려면 Visual Studio에서 종속성 다이어그램을 만듭니다. 코드가 디자인과 일치하는지 확인하려면 종속성 다이어그램에서 코드의 유효성을 검사합니다. Visual C# 및 Visual Basic 프로젝트에 대한 종속성 다이어그램을 만들 수 있습니다. 이 기능을 지원하는 Visual Studio 버전을 확인하려면 아키텍처 및 모델링 도구에 대한 에디션 지원을 참조하세요.

종속성 다이어그램 만들기

종속성 다이어그램을 사용하여 Visual Studio 솔루션 항목을 레이어라는 논리적, 추상 그룹으로 구성할 수 있습니다. 레이어를 사용하여 이러한 아티팩트가 수행하는 주요 작업 또는 시스템의 주요 구성 요소를 설명할 수 있습니다.

각 레이어에는 보다 세부적인 작업을 나타내는 다른 레이어가 포함될 수 있습니다. 또한 레이어 간의 계획된 종속성 또는 기존 종속성을 지정할 수 있습니다. 이와 같이 화살표로 나타내는 종속성은 다른 레이어가 나타내는 기능을 사용하거나 사용할 수 있는 레이어를 표시합니다. 코드의 아키텍처 제어를 유지하려면 다이어그램에서 의도한 종속성을 표시한 다음 해당 다이어그램에 대해 코드 유효성을 검사합니다.

비디오: 실시간으로 아키텍처 종속성 유효성 검사

종속성 다이어그램 만들기

종속성 다이어그램을 만들기 전에 솔루션에 모델링 프로젝트가 있는지 확인하세요.

Important

한 모델링 프로젝트에서 다른 모델링 프로젝트나 솔루션의 다른 위치로 기존 종속성 다이어그램을 추가하거나 끌어 놓거나 복사하지 마세요. 그러면 다이어그램을 변경하더라도 원래 다이어그램의 참조가 유지됩니다. 또한 레이어 유효성 검사가 제대로 작동하지 않고 다이어그램을 열려고 할 때 요소 누락이나 기타 오류 등의 다른 문제가 발생할 수 있습니다.

대신 모델링 프로젝트에 새 종속성 다이어그램을 추가합니다. 소스 다이어그램에서 새 다이어그램으로 요소를 복사합니다. 모델링 프로젝트와 새 종속성 다이어그램을 저장합니다.

모델링 프로젝트에 새 종속성 다이어그램 추가

참고 항목

.NET Core 프로젝트에 대한 종속성 다이어그램은 Visual Studio 2019 버전 16.2부터 지원됩니다.

  1. 아키텍처 메뉴에서 새 종속성 다이어그램을 선택합니다.

  2. 템플릿 아래에서 종속성 다이어그램을 선택합니다.

  3. 다이어그램 이름을 지정합니다.

  4. 모델링 프로젝트에 추가에서 솔루션의 기존 모델링 프로젝트를 찾아 선택합니다.

    또는

    새 모델링 프로젝트 만들기를 선택하여 솔루션에 새 모델링 프로젝트를 추가합니다.

    참고 항목

    종속성 다이어그램은 모델링 프로젝트 내에 있어야 합니다. 그러나 솔루션의 다른 위치에 있는 항목에 링크를 연결할 수 있습니다.

  5. 모델링 프로젝트와 종속성 다이어그램을 반드시 저장합니다.

코드 맵에서 끌어서 놓기 또는 복사 및 붙여넣기

  1. 아키텍처 메뉴를 사용하여 솔루션에 대한 코드 맵을 생성합니다.

  2. 제품 코드에 종속성을 적용하려는 경우에는 코드 맵 필터를 적용하여 솔루션 폴더를 제거하고 "자산 테스트"를 수행하는 것이 좋습니다.

  3. 네임스페이스 종속성의 적용 여부에 따라 생성된 코드 맵에서 "External" 노드를 제거하거나 확장하여 외부 어셈블리를 표시합니다. 코드 맵에서 필수가 아닌 어셈블리를 삭제합니다.

  4. 아키텍처 메뉴를 사용하여 솔루션에 대한 새 종속성 다이어그램을 만듭니다.

  5. 코드 맵의 모든 노드를 선택(Ctrl + A하거나 Shift 키를 눌러 고무 밴드 선택 영역을 사용한 다음 클릭해서 끌어다 놓습니다)합니다.

  6. 선택한 요소를 새 종속성 유효성 검사 다이어그램으로 끌어서 놓거나 복사하여 붙여 넣습니다.

  7. 이것은 현재 애플리케이션 아키텍처를 보여 줍니다. 아키텍처의 용도를 결정하고 종속성 다이어그램을 적절하게 수정합니다.

코드 맵에서 생성된 종속성 다이어그램

아티팩트에서 레이어 만들기

프로젝트, 코드 파일, 네임스페이스, 클래스, 메서드 등 Visual Studio 솔루션 항목에서 레이어를 만들 수 있습니다. 이렇게 하면 레이어와 항목 간에 링크가 자동으로 만들어지고 레이어 유효성 검사 프로세스에 포함됩니다.

Word 문서 또는 PowerPoint 프레젠테이션과 같이 유효성 검사를 지원하지 않는 항목에 레이어를 연결할 수 있습니다. 이렇게 하면 레이어를 사양 또는 계획과 연결할 수 있습니다. 또한 여러 앱에 공유되는 프로젝트의 파일에 레이어를 연결할 수 있지만, 유효성 검사 프로세스에는 "레이어 1", "레이어 2"와 같이 제네릭 이름으로 나타나는 레이어는 포함되지 않습니다.

연결된 항목이 유효성 검사를 지원하는지 확인하려면 레이어 탐색기를 열고 항목의 유효성 검사 지원 속성을 확인합니다. 레이어와 아티팩트 간의 링크 관리를 참조하세요.

받는 사람 다음 단계를 수행하세요.
단일 아티팩트에 대한 레이어 만들기
  1. 다음 소스에서 종속성 다이어그램으로 항목을 끌어옵니다.
    레이어가 다이어그램에 나타나고 아티팩트에 연결됩니다.
  2. 연결된 코드 또는 아티팩트의 기능을 반영하도록 레이어 이름을 바꿉니다.

중요: 이진 파일을 종속성 다이어그램으로 끌어 올 경우 모델링 프로젝트에 해당 참조가 자동으로 추가되지 않습니다. 유효성을 검사할 이진 파일을 모델링 프로젝트에 수동으로 추가합니다. 모델링 프로젝트에 바이너리 파일을 추가하려면
  1. 솔루션 탐색기에서 모델링 프로젝트에 대한 바로 가기 메뉴를 열고 기존 항목 추가를 선택합니다.
  2. 기존 항목 추가 대화 상자에서 이진 파일을 찾아 선택한 다음 확인을 선택합니다. 이진 파일이 모델링 프로젝트에 나타납니다.
  3. 솔루션 탐색기에서 추가한 이진 파일을 선택한 다음 F4 키를 눌러 속성 창을 엽니다.
  4. 각 이진 파일에서 빌드 작업 속성을 유효성 검사로 설정합니다.
선택한 모든 아티팩트에 대한 단일 레이어 만들기 모든 아티팩트를 종속성 다이어그램으로 동시에 끌어 옵니다.

레이어가 다이어그램에 나타나고 모든 아티팩트에 연결됩니다.
선택한 각 아티팩트마다 레이어 만들기 SHIFT 키를 누른 상태에서 모든 아티팩트를 동시에 종속성 다이어그램으로 끌어 옵니다.
참고: SHIFT 키를 사용하여 항목 범위를 선택할 경우 아티팩트를 선택한 후에 키를 놓습니다. 그런 다음 이 키를 다시 누른 상태로 아티팩트를 다이어그램으로 끌어 옵니다.

각 아티팩트에 대한 레이어가 다이어그램에 나타나고 각 아티팩트에 연결됩니다.
레이어에 아티팩트 추가 아티팩트를 레이어로 끌어 옵니다.
연결되지 않은 새 레이어 만들기 도구 상자에서 종속성 다이어그램 섹션을 확장한 다음 레이어를 종속성 다이어그램으로 끌어옵니다.

레이어를 여러 개 추가하려면 이 도구를 두 번 클릭합니다. 완료되면 포인터 도구를 선택하거나 ESC 키를 누릅니다.

- 또는 -

종속성 다이어그램에 대한 바로 가기 메뉴를 열고 추가를 선택한 다음 레이어를 선택합니다.
중첩된 레이어 만들기 기존 레이어를 다른 아티팩트로 끌어 옵니다.

- 또는 -

레이어에 대한 바로 가기 메뉴를 열고 추가를 선택한 다음 레이어를 선택합니다.
기존 레이어를 두 개 이상 포함하는 새 레이어 만들기 레이어를 선택하고 선택 항목에 대한 바로 가기 메뉴를 연 다음 그룹을 선택합니다.
레이어 색 변경 레이어의 속성을 원하는 색으로 설정합니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스에 속하지 않도록 지정합니다. 레이어의 사용할 수 없는 네임스페이스 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스에 종속될 수 없도록 지정합니다. 레이어의 사용할 수 없는 네임스페이스 종속성 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스 중 하나에 속해야 하도록 지정합니다. 레이어의 필요한 네임스페이스 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.

레이어의 숫자는 해당 레이어에 연결된 아티팩트의 수를 나타냅니다. 그러나 이 숫자를 읽을 때 다음 사항을 유념해야 합니다.

  • 레이어가 직접 연결되지 않은 다른 아티팩트를 포함하는 아티팩트에 연결된 경우 연결된 아티팩트만 숫자에 포함됩니다. 그러나 레이어 유효성 검사 중에는 직접 연결되지 않은 다른 아티팩트도 분석을 위해 포함됩니다.

    예를 들어 레이어가 단일 네임스페이스에 연결된 경우 해당 네임스페이스에 클래스가 들어 있더라도 연결된 아티팩트의 수는 1입니다. 레이어가 네임스페이스의 각 클래스에도 연결되어 있으면 연결된 클래스가 숫자에 포함됩니다.

  • 레이어가 아티팩트에 연결된 다른 레이어를 포함하면 컨테이너 레이어가 이 아티팩트에도 연결됩니다. 단, 컨테이너 레이어의 숫자에는 이러한 아티팩트가 포함되지 않습니다.

레이어와 아티팩트 간의 링크 관리

  1. 종속성 다이어그램에서 레이어에 대한 바로 가기 메뉴를 열고 링크 보기를 선택합니다.

    레이어 탐색기에 선택한 레이어에 대한 아티팩트 링크가 표시됩니다.

  2. 다음 작업으로 이러한 링크를 관리할 수 있습니다.

받는 사람 레이어 탐색기에서
레이어와 아티팩트 간의 링크 삭제 아티팩트 링크에 대한 바로 가기 메뉴를 열고 삭제를 선택합니다.
한 레이어에서 다른 레이어로 링크 이동 아티팩트 링크를 다이어그램의 기존 레이어로 끌어 옵니다.

- 또는 -

1. 아티팩트 링크에 대한 바로 가기 메뉴를 연 다음, 잘라내기를 선택합니다.
2. 종속성 다이어그램에서 레이어에 대한 바로 가기 메뉴를 연 다음, 붙여넣기를 선택합니다.
한 레이어에서 다른 레이어로 링크 복사 1. 아티팩트 링크에 대한 바로 가기 메뉴를 연 다음, 복사를 선택합니다.
2. 종속성 다이어그램에서 레이어에 대한 바로 가기 메뉴를 연 다음, 붙여넣기를 선택합니다.
기존 아티팩트 링크에서 새 레이어 만들기 아티팩트 링크를 다이어그램의 빈 영역으로 끌어 옵니다.
연결된 아티팩트가 종속성 다이어그램에 대한 유효성 검사를 지원하는지 확인 아티팩트 링크의 유효성 검사 지원 열을 검토합니다.

기존 종속성 리버스 엔지니어링

한 레이어와 연결된 아티팩트에 다른 레이어와 연결된 아티팩트에 대한 참조가 있을 때마다 종속성이 존재합니다. 예를 들어 한 레이어의 클래스가 다른 레이어의 클래스를 포함하는 변수를 선언하는 경우입니다. 다이어그램의 레이어에 연결된 아티팩트에 대한 기존 종속성을 리버스 엔지니어링할 수 있습니다.

참고 항목

일부 아티팩트 종류의 경우 종속성을 리버스 엔지니어링할 수 없습니다. 예를 들어 텍스트 파일에 연결된 레이어를 소스 또는 대상으로 하는 종속성은 리버스 엔지니어링되지 않습니다. 리버스 엔지니어링할 수 있는 종속성이 있는 아티팩트를 확인하려면 하나 또는 여러 개의 레이어에 대한 바로 가기 메뉴를 연 다음 링크 보기를 선택합니다. 그런 다음 레이어 탐색기에서 유효성 검사 지원 열을 검토합니다. 이 열에 False가 표시된 아티팩트에 대해서는 종속성이 리버스 엔지니어링되지 않습니다.

  • 하나 또는 여러 개의 레이어를 선택하고 선택한 레이어에 대한 바로 가기 메뉴를 연 다음 종속성 생성을 선택합니다.

    존재하지 않아야 하는 일부 종속성이 표시되는 경우 이러한 종속성을 편집하여 의도한 디자인에 맞출 수 있습니다.

레이어 및 종속성을 편집하여 계획된 디자인 표시

시스템에 대해 변경할 내용 또는 계획된 아키텍처를 나타내려는 경우 종속성 다이어그램을 편집합니다.

받는 사람 다음 단계를 수행
종속성 방향 변경 또는 제한 방향 속성을 설정합니다.
새 종속성 만들기 종속성양방향 종속성 도구를 사용합니다.

종속성을 여러 개 그리려면 이 도구를 두 번 클릭합니다. 완료되면 포인터 도구를 선택하거나 ESC 키를 누릅니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스에 종속될 수 없도록 지정합니다. 레이어의 사용할 수 없는 네임스페이스 종속성 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스에 속하지 않도록 지정합니다. 레이어의 사용할 수 없는 네임스페이스 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.
레이어와 연결된 아티팩트가 지정된 네임스페이스 중 하나에 속해야 하도록 지정합니다. 레이어의 필요한 네임스페이스 속성에 네임스페이스를 입력합니다. 세미콜론(;)을 사용하여 네임스페이스를 구분합니다.

다이어그램에 요소가 표시되는 방식 변경

해당 속성을 편집하여 레이어의 크기, 모양, 색, 위치 또는 종속성의 색을 변경할 수 있습니다.

코드 맵에서 패턴 및 종속성 검색

종속성 다이어그램을 만드는 동안 코드 맵을 만들 수도 있습니다. 이러한 다이어그램은 코드를 탐색하는 동안 패턴 및 종속성을 검색하는 데 도움이 됩니다. 솔루션 탐색기, 클래스 뷰 또는 개체 브라우저를 사용하여 어셈블리, 네임스페이스 및 클래스를 탐색합니다. 이러한 요소는 기존 레이어에 해당하는 경우가 많습니다. 코드 맵에 대한 자세한 내용은 다음을 참조하세요.