다음을 통해 공유


구현을 위한 분산 시스템 솔루션 분할

업데이트: 2007년 11월

개발 팀이 구현을 지원하는 응용 프로그램 정의를 응용 프로그램 다이어그램에서 구현할 준비가 되면 선임 개발자는 Visual Studio에서 이러한 정의에 대한 프로젝트를 생성할 수 있습니다. 이러한 프로젝트는 동일한 솔루션 내의 다른 항목과 함께 솔루션 탐색기에 표시됩니다. 그러나 솔루션을 보다 작은 솔루션으로 분할하려는 경우가 있습니다. 응용 프로그램의 하위 집합만을 포함하는 더 작은 솔루션을 만들면 개발용 프로젝트를 융통성 있게 구성할 수 있습니다. Visual Studio에서는 수에 제한 없이 여러 솔루션에 프로젝트를 포함하여 프로젝트의 하위 집합을 포함하는 솔루션을 만들 수 있습니다. 또한 원래 솔루션을 "마스터" 솔루션으로 유지하면 유용합니다. "마스터" 솔루션은 솔루션의 원래 범위에서 변경 내용을 조정하고 시스템을 만들어 해당 범위에서 배포를 정의할 수 있습니다.

참고:

이 항목의 방법과 지침에서는 소스 코드 제어를 사용하는 것으로 가정합니다. 자세한 내용은 소스 제어에서 사용 중인 SDM 문서를 참조하십시오. 솔루션을 분할할 때는 기본적으로 동적 포트를 사용하는 파일 시스템 기반 ASP.NET 응용 프로그램에 정적 포트를 사용하는 것이 좋습니다. ASP.NET 응용 프로그램에 동적 포트를 사용하면 관련 웹 서비스에서 포트 번호가 변경되어 해당 웹 참조와의 연결이 끊어질 수 있습니다. 자세한 내용은 응용 프로그램 다이어그램의 ASP.NET 응용 프로그램 개요를 참조하십시오.

다음 단원에는 솔루션 분할에 대한 자세한 정보가 포함되어 있습니다.

  • 마스터 솔루션에서 분할된 솔루션

  • 원래 솔루션을 마스터 솔루션으로 유지

  • 분할된 솔루션에 대한 변경 내용으로 마스터 솔루션 업데이트

마스터 솔루션에서 분할된 솔루션

크고 복잡한 응용 프로그램 시스템에 대한 응용 프로그램 정의를 단일 솔루션으로 만든 경우에는 응용 프로그램 구현을 위한 솔루션을 더 작은 솔루션으로 나누면 관리하기가 수월합니다. 분할된 각 솔루션은 연결된 응용 프로그램 정의에 대한 SDM(시스템 정의 모델) 정보를 포함하는 .sdm 파일, 구성 파일 및 코드 파일을 비롯하여 응용 프로그램 정의의 하위 집합과 해당 프로젝트를 포함합니다.

다양한 방법으로 솔루션을 분할할 수 있습니다. 예를 들어, 전체 시스템을 구성하는 멤버 시스템이 명확하게 구분된 경우 솔루션의 각 시스템 경계를 기반으로 솔루션을 만들도록 선택할 수 있습니다. 그러면 시스템에서 참조하는 응용 프로그램 정의에 대한 프로젝트가 각 솔루션에 포함됩니다. 각 시스템의 복잡성에 따라 분할된 솔루션을 더 작은 솔루션으로 분할할 수 있습니다. 솔루션을 개별 개발자 수준으로 분할하여 각 개발자의 솔루션에 본인이 담당하는 시스템 부분만 포함되도록 할 수도 있습니다. 또한 소스 코드 제어를 사용하여 프로젝트를 공유할 수 있습니다. 그러나 프로젝트를 공유할 때 주의해야 할 문제들이 있습니다. 자세한 내용은 SDM 문서에 대한 동시 체크 아웃 및 변경을 참조하십시오.

참고:

응용 프로그램 정의 및 해당 프로젝트를 단일 솔루션에서 더 작은 솔루션으로 분할하는 논리 기반으로 시스템 경계를 사용하기는 하지만 반드시 이 방법으로 솔루션을 나눌 필요는 없습니다. 같은 응용 프로그램의 정의를 사용하는 경우 등 시스템이 겹치는 경우에는 이러한 접근 방법이 그다지 유용하지 않습니다.

분할된 솔루션의 콘텐츠

분할된 각 솔루션에 응용 프로그램 다이어그램을 추가하면 해당 솔루션의 프로젝트에 있는 응용 프로그램 정의 파일(.sdm)을 기반으로 다이어그램에 응용 프로그램 정의를 표시할 수 있습니다. 솔루션을 분할한 후 솔루션에 추가되는 모든 새 프로젝트는 필요한 경우 응용 프로그램 다이어그램에서 리버스 엔지니어링됩니다. 개별 사용자가 이러한 정의 사용을 포함하는 시스템을 검토할 수 있도록 분할된 각 솔루션이 시스템 다이어그램을 포함할 수도 있습니다. 예를 들어, 응용 프로그램 정의에 대한 참조를 공유하는 시스템 다이어그램을 분할된 솔루션에 포함하여 컨텍스트를 제공할 수 있습니다. 분산 시스템 디자이너를 사용하여 배포를 평가하거나 배포 보고서를 생성하려는 경우 응용 프로그램 다이어그램을 사용하거나 시스템 다이어그램을 분할된 솔루션에 추가할 수 있습니다. 프로젝트 개발에 대해서만 분할된 솔루션을 사용하려는 경우 분산 시스템 다이어그램을 솔루션에 포함할 필요가 없습니다.

참고:

응용 프로그램 다이어그램이 닫혀 있는 동안 .sdm 파일을 삭제하면 나중에 해당 프로젝트를 포함하는 솔루션에서 응용 프로그램 다이어그램을 열 때 .sdm 파일이 다시 생성됩니다. 그러나 다시 생성된 .sdm 파일은 다른 소스에서 다시 만들 수 있는 정보만 포함합니다. 삭제된 .sdm 파일에만 저장되어 있던 모든 정보는 손실됩니다. 연결된 정의에 대한 참조가 손상되었을 수도 있습니다. 자세한 내용은 응용 프로그램 다이어그램 문제 해결을 참조하십시오. 공유된 응용 프로그램 정의가 분할된 솔루션에 없는 경우 솔루션에 포함된 시스템 다이어그램에서 해당 정의를 사용하면 손상된 것으로 표시됩니다. 존재하지 않는 응용 프로그램 정의를 참조하는 시스템에 대한 배포는 정의하거나 평가할 수 없습니다. 자세한 내용은 SDM 문서 간 동기화를 참조하십시오. 시스템 다이어그램이 추가된 경우 솔루션에 응용 프로그램 다이어그램이 있어야 합니다.

원래 솔루션을 마스터 솔루션으로 유지

솔루션을 보다 작은 솔루션으로 분할한 후 원래 솔루션을 "마스터" 솔루션으로 유지할 수도 있습니다. 이 방법을 사용하면 상황에 따라 전체 시스템을 보고 검토할 수 있습니다. 또한 마스터 솔루션이 있고 이 마스터 솔루션이 고유한 응용 프로그램 다이어그램을 포함하는 경우 분할된 각 솔루션에서 응용 프로그램 다이어그램을 사용할 필요가 없습니다.

참고:

마스터 솔루션은 보관하거나 유지할 필요가 없습니다. 예를 들어, 웹 서비스 간 연결을 기반으로 시스템 경계를 명확하게 나눌 수 있는 경우에는 분할된 각 솔루션을 별도로 관리하고 웹 서비스 간의 상호 작용을 외부 웹 서비스에 대한 연결로 나타내기만 하면 됩니다. 외부 웹 서비스는 웹 서비스가 솔루션 경계에서 참조하는 분할된 각 솔루션의 응용 프로그램 다이어그램에 자동으로 추가됩니다. 자세한 내용은 응용 프로그램 정의를 위한 응용 프로그램 종류 및 프로토타입을 참조하십시오. 낮은 수준으로 분할된 솔루션에서 만들어진 시스템을 참조하는 높은 수준의 시스템을 디자인하려는 경우 필요한 낮은 수준의 시스템 정의만을 포함하는 시스템 정의를 만들 수 있습니다. 그러나 이러한 시스템에 대한 배포를 정의하고 평가하려면 참조되는 모든 응용 프로그램이 해당 솔루션에 포함되어 있는지 확인해야 합니다.

예를 들어, 개발 팀이 세 개의 개별 솔루션을 대상으로 작업하는 세 명의 개발자로 구성되어 있고, 각 솔루션은 응용 프로그램 정의와 연결된 프로젝트를 포함하는 분할된 솔루션이라고 가정합니다. 이 세 개의 솔루션은 단일 응용 프로그램 시스템의 경계를 포함하는 더 큰 분할된 솔루션의 일부입니다. 또한 분할된 솔루션은 마스터 솔루션의 범위 내에 있는 전체 시스템을 구성하는 다른 응용 프로그램 시스템을 설명하는 여러 개의 분할된 솔루션 중 하나입니다.

개발 팀은 분할된 솔루션에서 작업할 때 소스 코드 제어에 대한 변경 내용을 체크 인합니다. 그러면 선임 개발자가 해당 다이어그램과 파일을 체크 아웃하여 소스 코드 제어에서 마스터 솔루션을 업데이트할 수 있습니다. 이 작업은 코드와 구성 파일에 대한 변경 내용을 해당 다이어그램으로 동기화합니다. 자세한 내용은 SDM 개요SDM 문서 간의 관계를 참조하십시오.

분할된 솔루션에 대한 변경 내용으로 마스터 솔루션 업데이트

응용 프로그램 설계자, 선임 개발자 또는 시스템 아키텍처 책임자는 분할된 솔루션에 대한 변경 내용으로 마스터 솔루션을 주기적으로 업데이트하고 유효성을 검사할 수 있습니다. 해당 작업자는 개발 팀 간에 나누어 맡은 프로젝트를 포함하는 분할된 솔루션을 체크 아웃할 수 있으며 분할된 솔루션 또는 더 작게 분할된 솔루션 내에서 직접 이러한 프로젝트에 대해 작업을 수행할 수 있습니다.

이렇게 하면 아키텍처가 변경된 경우 전체 시스템을 검토하고, 전체 시스템 디자인이 여전히 올바르게 배포하는지에 대한 유효성을 검사하고, 솔루션 간에 변경 내용을 전파하는 데 유용합니다. 마스터 솔루션이 모든 솔루션에 대한 유일한 응용 프로그램 다이어그램을 포함하고 시스템이 유지 관리되는 유일한 위치인 경우 마스터 솔루션을 주기적으로 업데이트하고 검토하는 것도 중요합니다.

소스 코드 제어에서 해당 프로젝트를 새로 고친 후 마스터 솔루션에서 응용 프로그램 다이어그램을 열면 응용 프로그램 설계자나 선임 개발자는 해당 프로젝트에 대한 변경 내용이 다이어그램에 미치는 영향을 검토할 수 있습니다. 설계자나 선임 개발자는 체크 인된 변경 내용의 목록을 검토하거나 코드 파일의 차이점을 비교하여 변경된 내용을 정확하게 확인할 수 있습니다. 그런 다음 설계자나 선임 개발자는 변경될 내용이 응용 프로그램 정의 및 시스템 정의에서의 응용 프로그램 정의 사용에 전파될 수 있도록 필요한 프로젝트를 체크 아웃하여 응용 프로그램 다이어그램을 프로젝트 코드와 동기화하거나 동기화 경고를 해결할 수 있습니다.

설계자나 선임 개발자는 이러한 프로젝트의 변경 내용에 만족할 경우 변경 내용을 솔루션으로 체크 인할 수 있습니다. 그렇지 않을 경우 설계자나 선임 개발자는 개발 팀과 함께 작업하여 코드가 다이어그램과 동기화될 수 있도록 충돌을 해결해야 합니다.

참고 항목

작업

방법: SDM 문서에서 충돌 해결

참조

SDM 문서에 대한 동시 체크 아웃 및 변경

기타 리소스

팀 환경의 분산 시스템 디자이너