도움말 번역입니다



유연하고 유지보수가 쉬운 다채로운 WPF 나 실버라이트 클라이언트 응용프로그램들을 설계하고 빌드하는 것은 도전적인 일이 될 수 있습니다. 이 섹션에서는 WPF 나 실버라이트 응용프로그램들을 빌드할 때 만날지도 모르는 일반적인 시련들의 일부에 대해서 설명하고, 프리즘이 어떤 방식으로 그러한 시련들을 다루도록 도와주는 지에 대해 설명합니다.


클라이언트 응용프로그램 개발에서의 시련들


일반적으로, 클라이언트 응용프로그램 개발자들은 매우 많은 시련들에 직면합니다. 응용프로그램 요구사항들은 계속해서 바뀝니다. 새로운 비즈니스 기회들과 시련들을 스스로 겪을 수도 있으며, 새로운 기술들이 이용 가능하게 될 수도 있고, 혹은 심지어는 개발 도중에 소비자의 피드백이 응용프로그램의 요구사항들에 중요한 영향을 미칠 수도 있습니다. 결국, 응용프로그램을 유연하고 시간이 지나도 쉽게 수정하거나 확장할 수 있도록 빌드하는 것이 중요합니다. 이러한 유형의 유연성을 위한 설계를 하는 것은 매우 어려울 수 있습니다. 그것은 응용프로그램의 개발 부분들이 서로 독립적으로 개발되고, 검사되는 것을 요구하며, 응용프로그램의 다른 부분들에 영향을 미치지 않고 별개로 수정되고 갱신되기를 원합니다.


거의 대부분의 엔터프라이즈 응용프로그램들은 충분히 복잡하며, 그것들은 한 명 이상의 개발자나 심지어는 개발자와 함께 유저 인터페이스 디자이너나 로컬라이저를 포함하는  여러 개발자들로 구성된 큰 팀을 요구합니다. 여러 개발자들이나 하위 팀들이 응용프로그램의 서로 다른 조각들 상에서 효율적으로 작업할 수 있도록 하면서 응용프로그램에 그 조각들이 통합될 때 서로 끈김없이 연결되도록 하는 응용프로그램을 설계하는 것은 매우 큰 도전입니다.


모놀리식monolithic 스타일로 응용프로그램을 설계하고 빌드하는 것은 유지보수하기 매우 어렵고 불충분한 응용프로그램으로 만들 수 있습니다. 이 경우, "모놀리식" 은 컴포넌트들이 매우 타이트하게 결합되며, 그것들 사이의 명확한 분리는 존재하지 않는 응용프로그램을 가리킵니다. 보통 이러한 방식으로 설계되고 빌드된 응용프로그램들은 개발자의 삶을 매우 어렵게 만듭니다. 그 시스템에 새로운 기능을 추가하거나 현존하는 기능을 대체하는 것은 어렵습니다. 그리고 시스템의 다른 부분들을 깨 먹지 않고 버그를 해결하기 어렵습니다. 그리고 테스트하거나 배포하기 어렵습니다. 또한 그것은 개발자들과 디자이너들이 효율적으로 협업하기 어렵게 합니다.


복합 접근법Compsite Approach


이러한 시련들을 위한 효율적인 해결방법은 응용프로그램을 여러 개의 끊어진, 느슨하게 결합된, 약간 독립적인 컴포넌트들로 나누는 것입니다. 이 컴포넌트들은 일관성있는 솔루션을 형성하기 위해서 응용프로그램 "쉘" 에 쉽게 통합될 수 있습니다. 이러한 방식으로 설계되고 빌드된 응용프로그램들은 보통 복합 응용프로그램이라고 알려져 있습니다.


복합 응용프로그램들은 많은 이점들을 가지고 있는데, 다음을 포함합니다 :


  • 그것들은 모듈들이 서로 다른 개인이나 하위 팀들에 의해 개별적으로 개발되고, 테스트되고, 배포되는 것을 허용합니다; 또한 새로운 기능들을 사용해 더욱 쉽게 수정되고 확장되는 것을 허용하며, 결국 응용프로그램이 쉽게 확장되고 유지되도록 만들어 줍니다. 심지어는 한 사람이 개발하는 프로젝트라고 할지라도 이 복합 접근법을 사용하면 더욱 검사하기 좋고 유지보수하기 좋은 응용프로그램을 생성하는데 있어서 이점을 누릴 수 있습니다.
  • 그것들은 느슨하게 결합되는 방식으로 상호작용하는 다양한 모듈들로부터 제공되는 UI 컴포넌트들로 구성된 공용 쉘을 제공합니다.이는 UI 에 새로운 기능을 추가하는데 있어 다수의 개발자들로부터 발생하는 언쟁을 줄여 주고, 공통적인 외형을 제공합니다.
  • 그것들은 로깅이나 권한과 같은 응용프로그램의 수평적 능력들과 응용프로그램에 특정한 비즈니스 기능과 같은 수직적 능력들 사이에서의 명확한 관심사 분리와 재사용성을 제공합니다. 또한 응용프로그램 컴포넌트들 사이의 종속성과 상호작용을 더욱 쉽게 관리할 수 있도록 해 줍니다.
  • 그것들은 서로 다른 개인들이나 하위 팀들이 그들의 관심사나 전문성과 관련된 특정 작업이나 기능조각에 집중할 수 있도록 함으로써, 역할 분리를 유지하는데 도움을 줍니다. 특히, 그것은 응용프로그램의 UI 와 비즈니스 로직 사이의 명확한 분리를 제공합니다 - 이는 UI 디자이너가 다채로운 사용자 경험을 생성하는데 집중할 수 있다는 것을 의미합니다.

복합 응용프로그램들은 클라이언트 응용프로그램 시나리오의 영역에 매우 잘 들어 맞습니다. 예를 들어, 그것은 복합 응용프로그램은 이질적인 백-엔드 시스템들 상에서 다채로운 엔드-유저 경험을 생성하는데 있어 이상적입니다.다음 그림은 이러한 유형의 복합 응용프로그램의 예를 보여 줍니다.




이러한 유형의 응용프로그램에서, 사용자는 다중 백-엔드 시스템들, 서비스들, 데이터 저장소들을 포괄하는 기능들 위에서 태스크-지향 포커스를 제공하는 다채롭고 유연한 사용자 경험을 제공받을 수 있습니다. 여기에서 각각의 기능들은 하나 이상의 전용 모듈들로 표현되어 있습니다. 응용프로그램 로직과 UI 사이에서의 명확한 분리는 응용프로그램이 모든 구성 모듈들 사이에서 일관적이고 차별화된 외향을 제공하도록 해 줍니다.


부가적으로 복합 응용프로그램은, 다른 컴포넌트들과 통합되어 있고 개별 팀들에 의해 자주 보수되는 UI 내에, 독립적으로 발전하는 컴포넌트들이 존재할 때 유용합니다. 다음 그림은 이러한 유형의 응용프로그램에 대한 스크린 샷을 보여 줍니다. 하이라이트된 각 영역은 UI 를 구성하는 독립적인 컴포넌트들을 의미합니다.




이 경우에, 복합 응용프로그램은 UI 가 동적으로 구성되는 것을 허용합니다. 이는 유연한 사용자 경험을 전달합니다. 예를 들어, 그것은 런타임에 응용프로그램으로 동적으로 추가될 수 있는 새로운 기능을 허용할 수 있습니다. 이는 엔드-유저 커스터마이제이션과 확장성을 가능하게 합니다.


프리즘으로 해결할 수 없는 시련들


비록 프리즘이 WPF 나 실버라이트 응용프로그램들을 빌드하면서 직면할 수 있는 많은 시련들을 해결하는데 도움을 주기는 하지만, 당신의 응용프로그램 상에서의 시나리오나 요구사항에 의존해서 직면할 수 있는 많은 다른 시련들이 존재합니다. 예를 들어 프리즘은 다음과 같은 주제들을 직접적으로 해결해줄 수 없습니다 :


  • 우연한 연결성occasional connectivity 및 데이터 동기화
  • 서비스 및 메시징 인프라스트럭쳐 설계
  • 인증authentication 및 승인authorization
  • 응용프로그램 성능
  • 응용프로그램 버전 관리
  • 에러 핸들링 및 내고장성fault tolerance


'Programming > Prism4.1' 카테고리의 다른 글

진보된 MVVM 시나리오들  (0) 2014.09.20
MVVM 패턴 구현하기  (0) 2014.09.16
모듈러 응용프로그램 개발  (0) 2014.09.13
컴포넌트 간의 종속성 관리하기  (0) 2014.09.10
프리즘 응용프로그램 초기화하기  (0) 2014.08.24
소개  (0) 2014.08.18
프리즘 4.1 설치  (0) 2014.08.14

+ Recent posts