단일 사용자 데스크톱 소프트웨어 개발 분야에서는 성능 요구 사항이 명확하게 정의되어 있습니다. 이런 맥락에서 사용자가 일반적인 작업을 할 때 작업 처리가 지체되지 않는 것이 중요합니다.
World Wide Web 사용 초기에는 웹 페이지가 느리게 로드되는 것이 다반사였고 많은 사용자들은 이를 참고 기다렸습니다. 그러나 점점 더 많은 엔터프라이즈 웹 응용 프로그램이 만들어지면서 웹 응용 프로그램 성능에 대한 요구도 데스크톱에 대한 성능 요구만큼 많아지기 시작했습니다. 현재 더 빠른 통신 기술이 널리 사용되면서 사용자의 성능에 대한 요구도 그만큼 더 증가하고 있습니다.
웹 응용 프로그램 디자인에서 실질적인 문제는 웹 응용 프로그램이 단일 사용자에게는 전통적인 데스크톱 응용 프로그램처럼 보이지만 실제로는 수 백, 수천명의 사용자를 동시에 서비스할 수 있는 분산 응용 프로그램이라는 점입니다.
웹 응용 프로그램은 천차만별인 환경 조건 하에서 성능을 유지해야 합니다. 즉 확장성이 있어야 합니다. 아마도 웹 응용 프로그램은 한 사람의 사용자가 사용할 때는 성능이 아주 좋을 것이고 굳이 확장성으로 변환할 필요가 없을 것입니다.
상이한 많은 매트릭스를 사용하여 응용 프로그램의 확장성을 파악할 수 있습니다. 이상적으로 볼 때 진정으로 확장 가능한 웹 응용 프로그램은 다음 사항을 충족시켜야 합니다.
단일 사용자뿐 아니라 동시에 수 백, 수 천명의 사용자를 지원할 수 있어야 합니다.
물론 이런 확장성은 이상적인 경우입니다. 그러나 응용 프로그램이 이런 이상에 더 가까울수록 실제 사용할 때 더 성공적일 것입니다.
성능과 확장성을 위한 디자인 고려 사항
웹 응용 프로그램 개발 프로젝트를 시작할 때 염두에 두어야 할 가장 중요한 것은 웹 응용 프로그램은 대부분 서버 응용 프로그램이라는 점입니다. 이제까지 서버 소프트웨어는 운영 체제 다음으로 복잡하고 프로그래밍하기가 어려웠습니다. IIS와 Windows®에서 웹 응용 프로그램을 더 빨리 더 쉽게 개발할 수 있는 다양한 혁신적인 도구들을 제공하고는 있지만 서버 소프트웨어 프로그래밍은 여전히 어려운 난제로 남아 있습니다.
응용 프로그램을 확장성 있게 만들 때 중요한 고려 사항은 다음과 같습니다.
기술 선택:어느 개발 플랫폼에서든 Windows는 작업을 완료하기 위한 많은 옵션을 제공합니다. 올바른 기술을 선택하는 문제는 확장 가능한 웹 응용 프로그램을 디자인할 때 가장 먼저, 그리고 가장 중요하게 고려해야 하는 단계입니다. 예를 들어 클라이언트쪽 기술이 서버와 동일하거나 유사한 기능성을 제공한다면, 클라이언트쪽 옵션을 사용하는 것이 훨씬 나을 것입니다. 클라이언트는 많은 처리 작업을 수행하기 때문에 응용 프로그램이 더욱 확장성을 갖게 되기 때문입니다. 적절한 기술을 선택해야 클라이언트와 서버 간의 라운드 트립을 줄일 수 있고 나아가 성능도 향상시킬 수 있습니다. 자세한 내용은 웹 응용 프로그램: 개요와 Internet Client SDK를 참조하십시오.
이 문서에서는 이러한 모든 항목들에 대해 자세히 분석하지는 않습니다. 대신 이 절에서는 특히, IIS를 중심으로 확장 가능한 웹 응용 프로그램을 만드는 데 도움을 줄 수 있는 참고 사항과 절차를 설명합니다.
이 절에는 다음 내용이 포함되어 있습니다.
웹 응용 프로그램 디자인에 대한 자세한 내용은 디자인 결정을 참조하십시오.