ASP.NET 웹 페이지 개요

Visual Studio 2010

업데이트: 2007년 11월

ASP.NET 웹 페이지는 웹 응용 프로그램을 위한 프로그래밍 가능한 사용자 인터페이스로 사용됩니다. ASP.NET 웹 페이지에서는 브라우저 또는 클라이언트 장치를 통해 사용자에게 정보를 표시하며 서버측 코드를 사용하여 응용 프로그램 논리를 구현합니다. ASP.NET 웹 페이지는 다음과 같은 특징이 있습니다.

  • Microsoft ASP.NET 기술을 바탕으로 서버에서 실행되는 코드에서 웹 페이지 출력을 동적으로 생성하여 브라우저나 클라이언트 장치로 보냅니다.

  • 모든 브라우저나 모바일 장치와 호환됩니다. ASP.NET 웹 페이지는 스타일, 레이아웃 등의 기능에 해당 브라우저 호환 HTML을 자동으로 렌더링합니다. Microsoft Internet Explorer 6과 같은 특정 브라우저에서 실행하도록 ASP.NET 웹 페이지를 디자인하여 브라우저별 기능을 활용할 수도 있습니다.

  • Microsoft Visual Basic, Microsoft Visual C#, Microsoft J# 및 Microsoft JScript .NET을 비롯하여 .NET 공용 언어 런타임에서 지원하는 모든 언어와 호환됩니다.

  • Microsoft .NET Framework를 기반으로 합니다. 따라서 관리되는 환경, 형식 안전성 및 상속 등 프레임워크의 모든 이점을 제공합니다.

  • 사용자가 만든 컨트롤이나 타사 컨트롤을 추가할 수 있으므로 유연성이 뛰어납니다.

ASP.NET 웹 페이지에서 사용자 인터페이스 프로그래밍은 시각적 구성 요소와 논리라는 두 부분으로 나뉩니다. Visual Basic이나 Visual C++ 같은 도구를 사용해 보았다면 페이지의 시각적 구성 요소 및 이들과 상호 작용하는 페이지에 숨겨진 코드를 구분할 수 있을 것입니다.

시각적 요소는 HTML과 같은 정적 태그나 ASP.NET 서버 컨트롤 또는 이 둘을 동시에 포함하는 파일로 구성됩니다. ASP.NET 웹 페이지는 표시할 정적 텍스트와 컨트롤을 포함하는 컨테이너 역할을 합니다.

ASP.NET 웹 페이지의 논리는 페이지와 상호 작용할 수 있도록 만든 코드로 이루어집니다. 이 코드는 페이지의 script 블록이나 개별 클래스에 있을 수 있습니다. 코드가 개별 클래스 파일에 있는 경우, 이 파일을 코드 숨김 파일이라고 합니다. 코드 숨김 파일의 코드는 Visual Basic, Visual C#, Visual J# 또는 JScript .NET으로 작성할 수 있습니다. ASP.NET 웹 페이지의 구성 방법에 대한 자세한 내용은 ASP.NET 웹 페이지 코드 모델을 참조하십시오.

ASP.NET 웹 페이지는 동적 연결 라이브러리 파일(.dll)로 컴파일됩니다. 사용자가 처음 .aspx 페이지를 열면 페이지를 나타내는 .NET 클래스 파일이 ASP.NET에서 자동으로 생성되어 컴파일됩니다. .dll 파일은 서버에서 실행되며 페이지의 HTML 출력을 동적으로 생성합니다. ASP.NET 응용 프로그램의 컴파일 방법에 대한 자세한 내용은 ASP.NET 컴파일 개요를 참조하십시오.

웹 응용 프로그램을 작성할 때는 전통적인 클라이언트 기반 응용 프로그램을 작성할 때와는 다른 어려움을 겪게 됩니다. 예를 들어 다음과 같은 문제점이 있습니다.

  • 풍부한 웹 사용자 인터페이스 구현   기본 HTML 기능을 사용하여 사용자 인터페이스를 디자인하고 구현하는 일은 지루하고 어려운 일일 수 있습니다. 레이아웃이 복잡하고, 동적 콘텐츠가 많고, 사용자와 상호 작용하는 완전한 기능의 개체가 포함된 페이지는 특히 그렇습니다.

  • 클라이언트와 서버 분리   웹 응용 프로그램에서 클라이언트(브라우저)와 서버는 각각 별개의 프로그램으로, 대개 이를 실행하는 컴퓨터가 서로 다르고 심지어 운영 체제까지 다릅니다. 따라서 웹 응용 프로그램의 클라이언트와 서버 간에 공유하는 정보가 매우 적습니다. 즉, 클라이언트와 서버가 서로 통신할 수는 있지만 대개 적은 양의 간단한 정보만을 교환합니다.

  • 상태 비저장 실행   페이지에 대한 요청을 받으면 웹 서버에서는 페이지를 찾고 처리하여 브라우저로 보낸 다음에는 페이지에 대한 모든 정보를 버립니다. 사용자가 동일한 페이지를 다시 요청할 경우 서버에서는 이전과 동일한 전체 과정을 반복하여 페이지를 처음부터 다시 처리해야 합니다. 즉, 서버에는 이전에 처리한 페이지에 대한 정보가 남아 있지 않습니다(상태 비저장). 따라서 응용 프로그램에서 페이지에 대한 정보를 보존해야 하는 경우에는 상태 비저장 특성이 문제가 될 수 있습니다.

  • 알려지지 않은 클라이언트 기능    서로 다른 브라우저를 사용하는 여러 사용자가 웹 응용 프로그램에 액세스하는 경우가 많습니다. 브라우저마다 기능이 다르므로 모든 브라우저에서 제대로 실행하는 응용 프로그램을 만들기는 어렵습니다.

  • 데이터 액세스 문제   전통적인 웹 응용 프로그램에서 데이터 소스의 정보를 읽고 쓰는 작업은 복잡하고 리소스를 많이 소모합니다.

  • 확장성 문제   기존 방법으로 디자인한 웹 응용 프로그램의 경우, 응용 프로그램의 다양한 구성 요소가 호환되지 않아 확장성이 부족한 경우가 많습니다. 기능을 자주 확장해야 하는 경우 이는 응용 프로그램을 쓸모 없게 만드는 주 요인이 될 수도 있습니다.

이러한 웹 응용 프로그램의 문제점을 해결하려면 시간과 노력이 많이 필요합니다. ASP.NET 웹 페이지와 ASP.NET 페이지 프레임워크에서는 이러한 문제점을 다음과 같은 방법으로 해결합니다.

  • 직관적이고 일관된 개체 모델   ASP.NET 페이지 프레임워크에서 제공하는 개체 모델을 이용하면 폼들을 각기 별개의 클라이언트 부분 및 서버 부분이 아닌 한 단위로 다룰 수 있습니다. 이 모델에서는 전통적인 웹 응용 프로그램을 만들 때보다 좀 더 직관적인 방식으로 페이지를 프로그래밍할 수 있습니다. 예를 들어, 쉽게 페이지 요소의 속성을 설정하고 이벤트에 응답할 수 있습니다. 또한 ASP.NET 서버 컨트롤은 HTML 페이지의 실제 콘텐츠 및 브라우저와 서버 간의 직접적인 상호 작용을 추상화한 것입니다. 일반적으로 클라이언트 응용 프로그램에서 컨트롤을 사용할 때와 마찬가지 방법으로 서버 컨트롤을 사용할 수 있으며, 컨트롤 및 컨트롤의 내용을 표시하고 처리하는 HTML을 만드는 방법에 대해 신경쓸 필요가 없습니다.

  • 이벤트 구동 프로그래밍 모델   ASP.NET 웹 페이지를 사용하면 클라이언트 또는 서버에서 발생하는 이벤트의 이벤트 처리기를 작성하는 익숙한 모델을 웹 응용 프로그램에 사용할 수 있습니다. ASP.NET 페이지 프레임워크에서는 클라이언트에서 발생하는 이벤트를 캡처하여 서버로 보내고 적절한 메서드를 호출하는 등의 내부 메커니즘이 사용자에게 보이지 않고 자동으로 수행되도록 이 모델을 추상화합니다. 그 결과 이벤트 구동 개발을 지원하는 간편한 코드 구조가 작성됩니다.

  • 직관적인 상태 관리   ASP.NET 페이지 프레임워크에서는 페이지와 페이지의 컨트롤 상태를 관리하는 작업을 자동으로 처리하고, 응용 프로그램 관련 정보의 상태를 관리할 수 있는 명시적인 방법을 제공합니다. 이러한 상태 관리는 서버 리소스를 많이 사용하지 않고도 가능하며 브라우저에 쿠키를 보내는지에 관계없이 구현할 수 있습니다.

  • 특정 브라우저에 종속되지 않는 응용 프로그램   ASP.NET 페이지 프레임워크를 사용하면 모든 응용 프로그램 논리를 서버에 만들 수 있으므로 각 브라우저에서 서로 다른 논리를 명시적으로 코딩할 필요가 없습니다. 반면, 향상된 성능과 좀 더 풍부한 클라이언트 기능을 사용할 수 있도록 클라이언트측 코드를 작성함으로써 브라우저와 관련된 기능을 활용할 수도 있습니다.

  • .NET Framework 공용 언어 런타임 지원   ASP.NET 페이지 프레임워크는 .NET Framework를 바탕으로 만들어졌기 때문에 모든 ASP.NET 응용 프로그램에서 전체 프레임워크를 사용할 수 있습니다. 응용 프로그램은 런타임과 호환되는 모든 언어로 작성할 수 있습니다. 또한 ADO.NET 등 .NET Framework에서 제공하는 데이터 액세스 인프라를 사용하여 데이터 액세스를 쉽게 수행할 수 있습니다.

  • .NET Framework 확장 가능한 서버 성능   ASP.NET 페이지 프레임워크를 사용하면 응용 프로그램의 논리를 복잡하게 바꾸지 않고도 단일 프로세서를 사용하는 단일 컴퓨터에서 다중 컴퓨터 웹 팜으로 문제 없이 웹 응용 프로그램을 확장할 수 있습니다.

표시: