다음을 통해 공유


레이어 다이어그램을 사용하여 응용 프로그램 구조 안정화

팀에서 코드를 조금씩 늘려가며 개발하는 경우 코드를 자주 변경하고 확장합니다. 이러한 변경으로 인해 시간이 지남에 따라 코드를 변경하기가 어려워지게 만드는 복잡한 종속성이 증가할 수 있습니다. 팀에서 이 문제를 방지하기 위해 레이어 다이어그램을 사용하여 응용 프로그램의 구성 요소 간 종속성을 설계하고 유효성을 검사할 수 있습니다.

레이어 다이어그램을 사용하면 팀에서 응용 프로그램을 구성하는 주요 부분의 작동 방식과 상호 작용에 대한 세부 정보 없이 주요 부분과 이러한 부분 간의 종속성을 볼 수 있습니다.

팀에서 레이어 다이어그램을 사용하여 코드가 아키텍처를 따르는지도 확인할 수 있습니다. Visual Studio에서 레이어 다이어그램을 그릴 때 코드의 클래스 그룹을 각 레이어에 할당하고 화살표를 사용하여 종속성을 지정할 수 있습니다. 그런 다음 Visual Studio를 사용하여 코드의 종속성이 레이어 다이어그램에 그린 화살표를 실제로 따르는지 확인할 수 있습니다.

팀에서 레이어 다이어그램의 유효성을 검사하는 체크 인 정책을 정의하고 팀의 연속 빌드에서 이 정책을 사용하여 이후의 변경이 항상 아키텍처를 따르는지 확인할 수 있습니다.

레이어 유효성 검사 도입

팀에서 이 단원에 나와 있는 절차를 수행하여 레이어 유효성 검사를 사용하기 시작할 수 있습니다.

새 코드를 작성할 때 레이어 유효성 검사를 사용하려면

  1. 응용 프로그램의 코드를 처음 작성할 때쯤 주요 구성 요소와 해당 종속성을 나타내는 레이어 다이어그램을 그립니다. 응용 프로그램이 개발됨에 따라 프로젝트 중에 다이어그램을 변경할 수도 있습니다.

    자세한 내용은 레이어 다이어그램: 참조를 참조하십시오.

  2. 네임스페이스나 클래스를 만들면 레이어에 할당합니다.

  3. 코드를 체크 인하기 전에 레이어 다이어그램을 마우스 오른쪽 단추로 클릭한 다음 아키텍처 유효성 검사를 클릭합니다.

  4. 체크 인 및 정기 빌드 절차에 레이어 유효성 검사를 추가합니다.

    자세한 내용은 방법: 레이어 다이어그램에 대해 .NET 코드 유효성 검사를 참조하십시오.

기존 응용 프로그램을 업데이트할 때 레이어 유효성 검사를 도입하려면

  1. 아키텍처 탐색기와 방향이 지정된 그래프를 사용하여 응용 프로그램 구조를 이해하기 위해 응용 프로그램을 탐색합니다. 다음 단계들은 이러한 이해 수준을 높이는 데 도움이 됩니다.

  2. 주요 구성 요소와 종속성이 어떠해야 하는지에 대해 설명합니다. 자세한 내용은 방법: 아티팩트에서 레이어 다이어그램 만들기를 참조하십시오.

  3. 아키텍처 탐색기 또는 솔루션 탐색기에서 끌어 와서 요소를 레이어에 할당합니다.

  4. 레이어 다이어그램을 마우스 오른쪽 단추로 클릭하고 아키텍처 유효성 검사를 클릭합니다.

  5. 오류 보고서를 검사하고 다음 방법을 사용하여 오류를 해결합니다.

    • 레이어 다이어그램을 수정합니다. 레이어 다이어그램을 개선하여 기존 코드를 보다 정확하게 나타내거나 코드 요소를 다른 레이어에 다시 할당합니다.

    • 코드를 수정합니다. 레이어 다이어그램이 기존 코드보다 나은 디자인을 나타낸다고 생각하면 레이어 다이어그램과 일치하도록 코드를 업데이트할 수 있습니다.

      자세한 내용은 이 항목의 뒷부분에 나오는 레이어 다이어그램을 따르도록 기존 코드 리팩터링을 참조하십시오.

  6. 오류가 보고되지 않을 때까지 이전 단계들을 반복합니다.

  7. 체크 인 및 정기 빌드 절차에 레이어 유효성 검사를 추가합니다.

    자세한 내용은 방법: 레이어 다이어그램에 대해 .NET 코드 유효성 검사를 참조하십시오.

레이어 다이어그램을 따르도록 기존 코드 리팩터링

팀에서 기존 응용 프로그램에 대한 작업을 시작할 때 응용 프로그램의 구조가 적절한 수준보다 복잡한 것을 발견할 수도 있습니다. 레이어 다이어그램을 그리고 레이어에 요소를 할당하려고 하면 이러한 상황을 발견하게 됩니다. 팀에서 논리적으로 불필요한 레이어와 종속성을 도입하거나 레이어를 건너뛰거나 루프를 형성하는 종속성을 도입하지 않고 유효성을 검사할 수 있는 방식으로 레이어에 요소를 할당하지 못할 수도 있습니다. 이러한 단점으로 인해 코드를 이해하고 변경하기가 어려워지고 코드의 동작이 사용자에게 일관성 없게 보일 수 있습니다.

팀에서 코드의 디자인을 개선하기 위해 코드를 리팩터링하여 코드에 대한 작업을 보다 쉽게 만들 수 있습니다. 팀에서 코드의 디자인을 개선하기 위해 코드를 리팩터링하도록 결정하는 경우 다음 사항을 고려합니다.

  • 리팩터링 변경 내용을 다른 변경 내용과 분리합니다. 리팩터링 변경 내용에는 사용자 스토리의 중요한 변경 내용이 포함되지 않아야 합니다.

  • 제안된 각 변경 내용을 제품 백로그에 추가하고 변경 내용과 예상되는 이점에 대한 설명을 포함합니다.

    참고

    구현하고 테스트하는 데 몇 시간만 필요한 리팩터링 변경 내용은 버그로 처리될 수 있습니다. 보다 큰 리팩터링 변경 내용은 제품 백로그에 추가되어 백로그의 다른 항목과 함께 예측되고 우선 순위가 지정되어야 합니다.

  • 리팩터링하기 전에 작업 중인 영역의 기능이 변경되지 않았는지 확인하는 테스트를 작성합니다.

레이어 모델 업데이트

처음 한두 번의 스프린트 후에 레이어 다이어그램이 안정적으로 유지되어야 합니다. 대개 레이어 유효성 검사 오류는 레이어 모델의 오류 대신 코드의 오류로 간주되어야 합니다.

레이어 모델을 업데이트해야 할 때 제안된 변경 내용을 팀과 함께 검토합니다.

레이어 모델의 변경 내용은 대부분 다음과 같이 분류됩니다.

  • 확장. 코드에 구성 요소를 더 추가하고 이러한 구성 요소에 맞는 레이어를 추가하려고 합니다.

  • 구체화. 많은 코드 요소가 현재 단일 레이어에 할당되어 있습니다. 단일 레이어를 보다 작은 레이어로 분리하여 레이어 유효성 검사의 효과를 높이려고 합니다.

  • 리팩터링. 기존 코드의 종속성 구조를 개선하려고 합니다. 기존 구조는 현재 레이어 다이어그램에 반영됩니다. 따라서 레이어 다이어그램과 코드를 동시에 개선하려고 합니다.

관련 항목