레이어 다이어그램: 지침
작성 하 여 높은 수준에서 응용 프로그램의 아키텍처를 설명할 수 있습니다 레이어 다이어그램 Visual Studio Ultimate에서.코드가이 디자인과 일관성을 유지 하려면 Visual Studio Ultimate 또는 Visual Studio Premium에서 레이어 다이어그램으로 코드를 확인 합니다.빌드 프로세스에 레이어 유효성 검사를 포함할 수도 있습니다.볼 채널 9 비디오: 디자인 아키텍처 레이어 다이어그램을 사용 하 여 유효성을 검사 하 고.
레이어 다이어그램은 무엇입니까?
일반적인 아키텍처 다이어그램과 마찬가지로 레이어 다이어그램은 디자인의 주요 구성 요소 또는 기능 단위와 상호 종속성을 식별합니다.다이어그램의 각 노드, 즉 레이어는 네임스페이스, 프로젝트 또는 기타 아티팩트의 논리 그룹을 나타냅니다.디자인에 있어야 하는 종속성을 그릴 수 있습니다.일반적인 아키텍처 다이어그램과 달리 소스 코드의 실제 종속성이 계획된 종속성과 일치하는지 확인할 수 있습니다.Team Foundation Server에서 정규 빌드의 유효성 검사 부분을 만들면 이후 변경되는 동안에도 프로그램 코드가 시스템 아키텍처를 준수하도록 할 수 있습니다.자세한 내용은 레이어 다이어그램: 참조를 참조하십시오.
디자인 또는 응용 프로그램 계층 다이어그램을 업데이트 하는 방법
다음 단계에서는 개발 프로세스 내에서 레이어 다이어그램을 사용하는 방법에 대해 간략히 설명합니다.각 단계에 대한 자세한 내용은 이 항목의 이후 단원에서 설명합니다.새 디자인을 개발하는 경우에는 기존 코드를 참조하는 단계를 생략하십시오.
[!참고]
이러한 단계는 대략적인 순서로 제시되어 있습니다.따라서 상황에 맞게 작업을 중복 수행하거나 순서를 변경하고, 프로젝트의 각 반복을 시작할 때마다 작업을 다시 수행할 수 있습니다.
전체 응용 프로그램 또는 응용 프로그램 내의 레이어에 대한 레이어 다이어그램을 만듭니다.
응용 프로그램의 주요 기능 영역 또는 구성 요소를 나타내도록 레이어를 정의합니다.해당 기능에 따라 레이어의 이름을 "프레젠테이션"이나 "서비스" 등으로 지정합니다.Visual Studio 솔루션이 있는 경우 각 레이어를 프로젝트, 네임스페이스, 파일 등의 아티팩트로 이루어진 컬렉션과 연결할 수 있습니다.
레이어 간의 기존 종속성을 찾습니다.
코드에 반영할 업데이트된 디자인을 나타내도록 레이어와 종속성을 편집합니다.
주요 아키텍처 블록 또는 구성 요소를 나타내는 레이어를 만들고 각 레이어가 다른 레이어를 사용하는 방식을 보여 주는 종속성을 정의하여 응용 프로그램의 새 영역을 디자인합니다.
동료와 논의할 때 유용하도록 다이어그램의 레이아웃 및 모양을 편집합니다.
레이어 다이어그램을 기준으로 코드의 유효성을 검사하여 필요한 아키텍처와 코드 간의 충돌을 강조 표시합니다.
새 아키텍처에 맞게 코드를 업데이트합니다.유효성 검사에서 충돌이 발견되지 않을 때까지 코드 개발 및 리팩터링을 반복합니다.
코드가 계속 디자인을 준수할 수 있도록 빌드 프로세스에 레이어 유효성 검사를 포함합니다.
레이어 다이어그램 만들기
모델링 프로젝트 내에 레이어 다이어그램을 만들어야 합니다.기존 모델링 프로젝트에 새 레이어 다이어그램을 추가, 새 모델링 프로젝트를 레이어 다이어그램에 대한 만들거나 기존 레이어 다이어그램 같은 모델링 프로젝트 내에서 복사할 수 있습니다.
중요 |
---|
한 모델링 프로젝트에서 다른 모델링 프로젝트나 솔루션의 다른 위치로 기존 레이어 다이어그램을 추가하거나 끌어 놓거나 복사하지 마십시오.이렇게 복사한 레이어 다이어그램은 수정해도 원본 다이어그램과 동일한 참조를 갖게 되어레이어 유효성 검사가 제대로 작동하지 못하고 다이어그램을 열려고 할 때 요소 누락이나 기타 오류 등의 다른 문제가 발생할 수 있습니다. |
자세한 내용은 코드에서 레이어 다이어그램 만들기를 참조하십시오.
기능 영역 또는 구성 요소를 나타내도록 레이어 정의
레이어는 프로젝트, 코드 파일, 네임스페이스, 클래스 및 메서드와 같은 아티팩트의 논리 그룹을 나타냅니다.Visual C#.net와 Visual Basic.NET 프로젝트에서 아티팩트에서 레이어를 만들 수 있습니다 하거나 문서, PowerPoint 프레젠테이션 또는 Word 파일을 연결 하 여 레이어에 사양 또는 계획을 첨부할 수 있습니다.각 레이어는 다이어그램에서 사각형으로 나타나며 해당 레이어에 연결된 아티팩트의 수를 보여 줍니다.레이어에는 보다 세부적인 작업을 나타내는 중첩된 레이어가 포함될 수 있습니다.
일반적으로 해당 기능에 따라 레이어의 이름을 "프레젠테이션"이나 "서비스" 등으로 지정합니다.밀접하게 상호 의존적인 아티팩트는 같은 레이어에 두어야 하고,개별적으로 업데이트하거나 개별 응용 프로그램에서 사용할 수 있는 아티팩트는 서로 다른 레이어에 두어야 합니다.레이어 패턴에 대해 알아보려면 Patterns & Practices 사이트(https://go.microsoft.com/fwlink/?LinkId=145794)를 참조하십시오.
팁 |
---|
일부 아티팩트 유형의 경우 레이어에 연결할 수는 있지만 레이어 다이어그램에 대한 유효성 검사는 지원하지 않습니다.아티팩트가 유효성 검사를 지원하는지 확인하려면 레이어 탐색기를 열고 아티팩트 링크의 유효성 검사 지원 속성을 확인합니다.볼 레이어와 아티팩트 간의 링크 관리. |
익숙하지 않은 응용 프로그램을 업데이트할 때 종속성 그래프를 사용하면 코드를 쉽게 탐색하고 이해할 수 있습니다.이 그래프는 코드에서 클러스터와 종속성을 찾는 데 유용합니다.아키텍처 탐색기를 사용하여 네임스페이스와 클래스를 탐색할 수도 있습니다. 이러한 요소는 종종 기존 레이어에 대응합니다.이를 통해 아티팩트를 쉽게 레이어에 할당할 수 있습니다.그런 다음 레이어 다이어그램을 사용하여 코드를 업데이트할 수 있습니다.
자세한 내용은 다음 항목을 참조하십시오.
레이어 간의 기존 종속성을 찾습니다
한 레이어와 연결된 아티팩트에 다른 레이어와 연결된 아티팩트에 대한 참조가 있을 때마다 종속성이 존재합니다.예를 들어 한 레이어의 클래스가 다른 레이어의 클래스를 포함하는 변수를 선언하는 경우입니다.기존 종속성을 리버스 엔지니어링하여 해당 종속성을 찾을 수 있습니다.
[!참고]
일부 아티팩트 종류의 경우 종속성을 리버스 엔지니어링할 수 없습니다.예를 들어 텍스트 파일에 연결된 레이어를 소스 또는 대상으로 하는 종속성은 리버스 엔지니어링되지 않습니다.리버스 엔지니어링할 수 있는 종속성이 있는 아티팩트를 확인하려면 하나 또는 여러 개의 레이어를 마우스 오른쪽 단추로 클릭하고 링크 보기를 클릭합니다.그런 다음 레이어 탐색기에서 유효성 검사 지원 열을 검토합니다.이 열에 False가 표시된 아티팩트에 대해서는 종속성이 리버스 엔지니어링되지 않습니다.
레이어 간의 기존 종속성을 리버스 엔지니어링하려면
- 하나 또는 여러 개의 레이어를 선택하고 그 중 하나를 마우스 오른쪽 단추로 클릭한 다음, 종속성 생성을 클릭합니다.
일반적으로 존재할 수 없는 일부 종속성이 나타나는데,이러한 종속성을 편집하여 계획된 디자인에 맞출 수 있습니다.
레이어 및 종속성을 의도 한 디자인을 표시 하도록 편집 합니다.
시스템에서 계획 된 아키텍처를 변경 하려는 내용을 기술 하 레이어 다이어그램을 편집 하려면 다음 단계를 사용 합니다.코드를 확장하기 전에 일부 리팩터링 관련 사항을 변경하여 코드의 구조를 개선할 수도 있습니다.볼 코드 구조 개선.
To |
수행할 단계 |
---|---|
존재할 수 없는 종속성 삭제 |
종속성을 클릭하고 Delete 키를 누릅니다. |
종속성 방향 변경 또는 제한 |
방향 속성을 설정합니다. |
새 종속성 만들기 |
종속성 및 양방향 종속성 도구를 사용합니다. 종속성을 여러 개 그리려면 이 도구를 두 번 클릭합니다.작업이 끝난 후에는 포인터 도구를 클릭하거나 Esc 키를 누릅니다. |
레이어와 연결된 아티팩트가 지정된 네임스페이스에 종속될 수 없도록 지정합니다. |
레이어의 사용할 수 없는 네임스페이스 종속성 속성에 네임스페이스를 입력합니다.세미콜론(;)을 사용하여 네임스페이스를 구분합니다. |
레이어와 연결된 아티팩트가 지정된 네임스페이스에 속하지 않도록 지정합니다. |
레이어의 사용할 수 없는 네임스페이스 속성에 네임스페이스를 입력합니다.세미콜론(;)을 사용하여 네임스페이스를 구분합니다. |
레이어와 연결된 아티팩트가 지정된 네임스페이스 중 하나에 속해야 하도록 지정합니다. |
레이어의 필요한 네임스페이스 속성에 네임스페이스를 입력합니다.세미콜론(;)을 사용하여 네임스페이스를 구분합니다. |
코드 구조 개선
리팩터링 변경 내용은 응용 프로그램 동작에 영향을 주지 않으면서 이후에 변경 및 확장을 쉽게 할 수 있도록 하는 개선 기능입니다.올바르게 구조화된 코드의 디자인은 레이어 다이어그램으로 쉽게 추출할 수 있습니다.
예를 들어 코드에서 각 네임스페이스에 대한 레이어를 만든 다음 종속성을 리버스 엔지니어링하는 경우 레이어 간에는 최소 단방향 종속성 집합이 있어야 합니다.클래스 또는 메서드를 레이어로 사용하여 보다 세부적인 다이어그램을 만드는 경우 해당 결과에도 동일한 특징이 포함되어야 합니다.
그렇지 않은 경우 코드는 실행 주기 동안 변경하기가 더 어렵게 되고 레이어 다이어그램을 사용하는 유효성 검사에 적합하지 않게 됩니다.
응용 프로그램의 새 영역을 디자인
새 프로젝트나 새 프로젝트의 새 영역에 대한 개발을 시작하는 경우 레이어와 종속성을 그리면 코드 개발을 시작하기 전에 주요 구성 요소를 식별할 수 있습니다.
가능한 경우 레이어 다이어그램에 식별할 수 있는 아키텍처 패턴을 표시합니다.예를 들어 데스크톱 응용 프로그램을 기술하는 레이어 다이어그램에 프레젠테이션, 도메인 논리 및 데이터 저장소와 같은 레이어가 포함될 수 있습니다.응용 프로그램 내의 단일 기능을 다루는 레이어 다이어그램에는 모델, 뷰 및 컨트롤러와 같은 레이어가 포함될 수 있습니다.이러한 패턴에 대한 자세한 내용은 Patterns & Practices: Application Architecture를 참조하십시오.
비슷한 패턴을 자주 만드는 경우에는 사용자 지정 도구를 만드는 것이 좋습니다.자세한 내용은 방법: 사용자 지정 모델링 도구 상자 항목 정의를 참조하십시오.
네임스페이스, 클래스 또는 구성 요소와 같이 각 레이어에 대한 코드 아티팩트를 만듭니다.이렇게 하면 코드로 이동하거나 코드 아티팩트를 레이어에 연결하기가 쉽습니다.각 아티팩트를 만든 후 바로 적절한 레이어에 연결합니다.
대부분의 클래스 및 기타 아티팩트를 레이어에 연결할 필요가 없습니다. 이러한 요소는 네임스페이스와 같이 이미 레이어에 연결된 더 큰 아티팩트에 포함되어 있습니다.
새 기능에 대한 다이어그램을 새로 만듭니다.일반적으로 전체 응용 프로그램을 기술하는 하나 이상의 레이어 다이어그램이 있습니다.응용 프로그램 내에 새 기능을 디자인하는 경우에는 기존 다이어그램을 변경하거나 여기에 추가하지 마십시오.대신 코드의 새 파트를 반영하는 고유한 다이어그램을 만듭니다.새 다이어그램의 레이어는 새 기능에 대한 프레젠테이션, 도메인 논리 및 데이터베이스 레이어를 포함할 수 있습니다.
응용 프로그램을 빌드하면 전체 다이어그램 및 좀 더 상세한 기능 다이어그램 둘 다에 대해 코드 유효성 검사가 수행됩니다.
프레젠테이션 및 토론을 위한 레이아웃 편집
레이어 및 종속성을 쉽게 식별하거나 팀 멤버와 레이어 및 종속성에 대해 토론하려면 다음 방법으로 다이어그램의 모양 및 레이아웃을 편집합니다.
레이어의 크기, 모양 및 위치를 변경합니다.
레이어 및 종속성의 색을 변경합니다.
- 하나 이상의 레이어 또는 종속성을 선택하고 마우스 오른쪽 단추를 클릭한 후 속성을 클릭합니다.그런 다음 속성 창에서 색 속성을 편집합니다.
다이어그램에 대해 코드 유효성 검사
언제 든 지 수동으로 또는 자동으로 코드에 대한 로컬 빌드를 실행할 때마다 확인할 수 다이어그램을 편집한 경우 또는 Team Foundation Build.
참조
빌드 프로세스에 레이어 유효성 검사 포함
새 아키텍처에 맞게 코드 업데이트
일반적으로 업데이트된 레이어 다이어그램을 기준으로 코드 유효성을 처음으로 검사할 때는 오류가 나타납니다.이러한 오류는 다음과 같은 몇 가지 원인으로 발생할 수 있습니다.
잘못된 레이어에 아티팩트가 할당되었습니다.이 경우 아티팩트를 이동합니다.
클래스 등의 아티팩트가 아키텍처에 맞지 않는 방식으로 다른 클래스를 사용합니다.이 경우 코드를 리팩터링하여 종속성을 제거합니다.
이러한 오류를 해결하려면 유효성 검사 중 더 이상 오류가 나타나지 않을 때까지 코드를 업데이트합니다.이 과정은 대개 반복적입니다.이 오류에 대한 자세한 내용은 레이어 다이어그램에 대해 코드 유효성 검사를 참조하십시오.
[!참고]
코드를 개발하거나 리팩터링하는 경우 새 아티팩트를 레이어 다이어그램에 연결해야 할 수도 있습니다.그러나 예를 들어 레이어가 기존 네임스페이스를 나타내고 새 코드에서는 해당 네임스페이스에 요소만 더 추가하는 경우와 같은 경우에는 이 작업이 필요하지 않을 수도 있습니다.
개발 과정에서 유효성 검사 중 보고된 충돌 문제 중 일부를 표시하지 않을 수 있습니다.예를 들어 이미 해결되었거나 특정 시나리오와 관계가 없는 오류를 표시하지 않을 수 있습니다.오류를 표시하지 않는 경우에는 Team Foundation에 작업 항목을 기록하는 것이 좋습니다.이 작업을 수행 하려면을 참조 하십시오 레이어 다이어그램에 대해 코드 유효성 검사.
빌드 프로세스에 레이어 유효성 검사 포함
이후에 코드에서 변경하는 내용이 레이어 다이어그램에 맞도록 솔루션의 표준 빌드 프로세스에 레이어 유효성 검사를 포함합니다.다른 팀 멤버가 솔루션을 빌드할 때마다 코드의 종속성과 레이어 다이어그램 간의 차이가 빌드 오류로 보고됩니다.빌드 프로세스에 레이어 유효성 검사를 포함 하는 방법에 대한 자세한 내용은 레이어 다이어그램에 대해 코드 유효성 검사.