모델링 솔루션 구성
개발 프로젝트에서 모델을 효과적으로 사용하려면 팀 멤버가 프로젝트의 다른 파트 모델에서 동시에 작업할 수 있어야 합니다. 이 항목에서는 전체 레이어 다이어그램의 레이어에 해당하는 여러 파트로 애플리케이션을 나누는 체계를 제안합니다.
프로젝트 또는 하위 프로젝트에서 신속하게 시작하려면 선택한 프로젝트 구조를 따르는 프로젝트 템플릿을 사용하는 것이 유용합니다. 이 항목에서는 이러한 템플릿을 만들고 사용하는 방법을 설명합니다.
이 항목에서는 여러 팀 멤버는 물론 여러 팀이 필요할 만큼 큰 프로젝트에서 작업 중이라고 가정합니다. 프로젝트의 코드와 모델은 Team Foundation Server와 같은 소스 제어 시스템에 저장됩니다. 적어도 일부 팀 멤버는 Visual Studio를 사용하여 모델을 개발하고, 다른 팀 멤버는 다른 Visual Studio 버전을 사용하여 모델을 볼 수 있습니다.
각 도구와 모델링 기능을 지원하는 Visual Studio 버전을 확인하려면 아키텍처 및 모델링 도구에 대한 버전 지원을 참조하세요.
솔루션 구조
중간 규모 또는 대규모 프로젝트에서 팀의 구조는 애플리케이션 구조를 기반으로 합니다. 각 팀이 Visual Studio 솔루션을 사용합니다.
애플리케이션을 레이어로 나누려면
웹 애플리케이션, 서비스 애플리케이션 또는 데스크톱 애플리케이션과 같은 애플리케이션 구조에 따라 솔루션 구조를 지정합니다. 다양한 일반적인 아키텍처에 대해서는 Microsoft 애플리케이션 아키텍처 가이드의 애플리케이션 Archetypehttp(영문)에서 설명합니다.
아키텍처 솔루션을 호출하는 Visual Studio 솔루션을 만듭니다. 이 솔루션은 시스템의 전반적인 디자인을 만드는 데 사용됩니다. 모델을 포함하지만 코드는 포함하지 않습니다.
이 솔루션에 종속성 다이어그램을 추가합니다. 종속성 다이어그램에서 애플리케이션에 대해 선택한 아키텍처를 그립니다. 예를 들어 다이어그램에 프레젠테이션; 비즈니스 논리 및 데이터 레이어와 레이어 간의 종속성이 표시될 수 있습니다.
아키텍처 종속성 다이어그램에서 각 레이어에 대한 별도의 Visual Studio 솔루션을 만듭니다.
이러한 솔루션은 레이어의 코드를 개발하는 데 사용됩니다.
레이어의 디자인과 모든 레이어에 공통적인 개념을 나타내는 모델을 만듭니다. 아키텍처 솔루션에서 모든 모델을 볼 수 있고 각 레이어에서 관련 모델을 볼 수 있도록 모델을 정렬합니다.
다음 절차 중 하나를 사용하여 이 작업을 수행할 수 있습니다. 첫 번째 대안은 각 레이어에 대해 별도의 모델링 프로젝트를 만드는 것이고, 두 번째 대안은 레이어 간에 공유되는 단일 모델링 프로젝트를 만드는 것입니다.
각 레이어에 대해 별도의 모델링 프로젝트 사용
각 레이어 솔루션에서 모델링 프로젝트를 만듭니다.
이 모델에는 해당 레이어의 요구 사항과 디자인을 설명하는 다이어그램이 포함됩니다. 중첩된 레이어를 표시하는 종속성 다이어그램이 포함될 수도 있습니다.
이제 각 레이어에 대한 모델과 애플리케이션 아키텍처에 대한 모델이 만들어졌습니다. 각 모델은 자체 솔루션에 포함됩니다. 이렇게 하면 팀 멤버가 레이어에서 동시에 작업할 수 있습니다.
아키텍처 솔루션을 사용하려면 각 레이어 솔루션의 모델링 프로젝트를 추가합니다. 이 작업을 수행하려면 아키텍처 솔루션을 엽니다. 솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 프로젝트를 클릭합니다. 한 레이어 솔루션의 모델링 프로젝트(.modelproj)로 이동합니다.
이제 각 모델에 두 개의 솔루션, 즉 "홈" 솔루션과 아키텍처 솔루션이 표시됩니다.
각 레이어의 모델링 프로젝트에 종속성 다이어그램을 추가합니다. 아키텍처 종속성 다이어그램의 복사본으로 시작합니다. 종속성 다이어그램의 종속성이 아닌 파트를 삭제할 수 있습니다.
이 레이어의 자세한 구조를 나타내는 종속성 다이어그램을 추가할 수도 있습니다.
이러한 다이어그램은 이 레이어에서 개발된 코드의 유효성을 검사하는 데 사용됩니다.
아키텍처 솔루션에서 Visual Studio를 사용하여 모든 레이어의 요구 사항 및 디자인 모델을 편집합니다.
각 레이어 솔루션에서 모델을 참조하여 해당 레이어에 대한 코드를 개발합니다. 동일한 컴퓨터를 사용하여 모델을 업데이트하지 않고 개발하는 데 만족하는 경우 모델을 만들 수 없는 Visual Studio 버전을 사용하여 모델을 읽고 코드를 개발할 수 있습니다. 이러한 버전의 모델에서 코드를 생성할 수도 있습니다.
이 메서드는 동시에 레이어 모델을 편집하는 개발자에 의해 간섭이 발생하지 않도록 합니다.
그러나 모델이 분리되어 있으므로 공통 개념을 참조하기 어렵습니다. 각 모델에 다른 레이어 및 아키텍처에서 종속된 요소의 자체 복사본이 있어야 합니다. 각 레이어의 종속성 다이어그램은 아키텍처 종속성 다이어그램과 동기화된 상태를 유지해야 합니다. 이 작업을 수행하는 도구를 개발할 수는 있지만 이러한 요소가 변경되는 경우 동기화를 유지하기 어렵습니다.
각 레이어에 대해 별도의 패키지 사용
각 레이어에 대한 솔루션에서 아키텍처 모델링 프로젝트를 추가합니다. 솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 프로젝트를 클릭합니다. 이제 모든 솔루션에서 아키텍처 프로젝트 및 각 레이어에 대한 개발 프로젝트인 단일 모델링 프로젝트에 액세스할 수 있습니다.
공유 모델에서 각 레이어에 대한 패키지를 만듭니다. 솔루션 탐색기에서 모델링 프로젝트를 선택합니다. UML 모델 탐색기에서 모델 루트 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 패키지를 클릭합니다.
각 패키지에는 해당 레이어의 요구 사항과 디자인을 설명하는 다이어그램이 포함됩니다.
필요한 경우 각 레이어의 내부 구조에 대한 로컬 종속성 다이어그램을 추가합니다.
이 메서드를 사용하면 각 레이어의 디자인 요소가 레이어 및 해당 레이어가 종속된 공통 아키텍처의 디자인 요소를 직접 참조할 수 있습니다.
서로 다른 패키지의 동시 작업으로 인해 일부 충돌이 발생할 수는 있지만 패키지가 별도의 파일에 저장되기 때문에 관리가 비교적 용이합니다.
아키텍처 템플릿 만들기
실제로 동시에 모든 Visual Studio 솔루션을 만드는 것이 아니라 프로젝트가 진행됨에 따라 추가합니다. 이후 프로젝트에서 동일한 솔루션 구조를 사용하는 경우도 있습니다. 새 솔루션을 신속하게 만들 수 있도록 솔루션 또는 프로젝트 템플릿을 만들 수 있습니다. 다른 컴퓨터에 쉽게 배포하고 설치할 수 있도록 템플릿을 VSIX(Visual Studio Integration Extension)에 캡처할 수 있습니다.
예를 들어 프레젠테이션, 비즈니스 및 데이터 레이어를 포함하는 솔루션을 자주 사용하는 경우 해당 구조가 포함된 새 솔루션을 만드는 템플릿을 구성할 수 있습니다.
솔루션 템플릿을 만들려면
이후 프로젝트의 시작점으로 사용할 솔루션 구조를 만듭니다.
파일 메뉴에서 VSIX로 템플릿 내보내기를 클릭합니다.
VSIX로 템플릿 내보내기 마법사가 열립니다.
마법사의 지침에 따라 템플릿에 포함할 프로젝트를 선택하고, 템플릿의 이름 및 설명을 제공하고, 출력 위치를 지정합니다.