다음을 통해 공유


Web Forms 페이지의 데이터 액세스 소개

Web Forms 페이지에 데이터베이스, XML 문서나 스트림 또는 기타 데이터 소스에서 파생된 정보를 표시해야 하는 경우가 있습니다. Web Forms 페이지의 아키텍처는 프로그래머가 데이터 소스 또는 데이터 소스에 대한 참조를 페이지에 통합하고 컨트롤을 데이터에 바인딩하고 다양한 방법으로 데이터를 조작할 수 있도록 되어 있습니다.

그러나 Web Forms 페이지의 특성보다는 웹 프로그래밍 자체의 특성 때문에 Web Forms 페이지의 데이터 액세스는 Windows Forms이나 이전 Microsoft 제품에 사용된 폼 기술과는 여러 면에서 다릅니다. 웹 프로그래밍은 상태 관리, 서버와 클라이언트 분리, 확장성을 위한 디자인 등에 있어 기존의 폼 프로그래밍과는 다르며, 이러한 차이점은 Web Forms 페이지가 가지는 차이점과 어느 정도 일치합니다. 또한 데이터베이스를 비롯하여 기존 기술과는 다른 리소스에 대해 작업하기 때문에 Web Forms 페이지에서 데이터를 관리하는 방법을 이해하는 것이 중요합니다.

참고   Visual Studio 데이터 액세스 구성 요소를 포함하는 응용 프로그램을 배포할 때는 응용 프로그램을 설치하는 사용자에게 MDAC(Microsoft Data Access Components) 버전 2.6 이상이 있는지 확인해야 합니다. 자세한 내용은 Microsoft Data Access Components의 시작 조건 추가를 참조하십시오.

Web Forms 페이지의 데이터 액세스 기본 원칙

Web Forms 페이지에서는 다음과 같은 기본 원칙에 따라 데이터 액세스 기능이 구현됩니다.

  • 연결이 끊어진 모델 사용
  • 데이터를 업데이트하는 횟수보다 읽는 횟수가 많음
  • 서버 리소스 요구 사항 최소화
  • 원격 프로세스를 사용하여 데이터에 액세스(데이터 액세스 분산)

연결이 끊어진 모델

Web Forms 페이지는 연결되어 있지 않습니다. 즉, Web Forms 페이지는 요청이 있을 때마다 생성되고 처리되어 브라우저로 전송된 후 서버 메모리에서 삭제됩니다. 이 방식은 좀 더 확장되어 Web Forms 페이지의 데이터 액세스에도 적용됩니다. 즉, 서버에서 페이지를 처리하는 동안 데이터를 읽거나 업데이트하고 페이지가 완성되어 브라우저로 전송되고 나면 데이터는 다른 페이지 요소와 함께 삭제됩니다.

이 모델에 따라 Web Forms 페이지의 데이터에 대해 작업하는 방법은 다음과 같이 다양할 수 있습니다.

  • 현재 작업 중인 데이터를 각 라운드트립에서, 즉 사용자가 페이지의 단추를 클릭할 때마다 자동으로 사용할 수는 없습니다. 서버에 페이지를 게시할 때마다 데이터에 다시 액세스하려면 각 라운드트립마다 소스에서 데이터를 다시 읽거나, 명시적으로 데이터를 저장한 다음 페이지를 처리할 때 그 데이터를 복원하도록 하는 코드를 페이지에 포함해야 합니다.
  • 데이터 소스와의 연결을 열어 두는 것은 바람직하지 않습니다. 일반적으로는 페이지를 처리하는 동안 소스와의 연결을 열고 데이터를 읽거나 쓴 다음 연결을 종료합니다.
  • 각 라운드트립에서는 대개 데이터 액세스 작업을 한 번 수행합니다. 예를 들어, 페이지를 처음 호출할 때 소스에서 데이터를 읽고 페이지의 컨트롤을 이 데이터에 바인딩할 수 있습니다. 사용자가 단추를 클릭하면 컨트롤의 데이터를 데이터 소스에 다시 작성합니다. 모눈에서 페이징하는 것과 같은 작업을 구현하는 경우에는 각 라운드트립에서 대개 한 번에 표시할 만큼의 레코드들을 페칭(feching)합니다.

데이터 읽기 및 업데이트

Web Forms 데이터 모델에서는 웹 페이지에서 수행하는 대부분의 데이터 액세스를 읽기 전용으로 간주합니다. 그 전형적인 예는 데이터 항목을 표시하는 카탈로그 또는 검색 목록입니다. 이 경우 항목은 대개 다른 페이지로 연결되어 있습니다. 대개의 경우 사용자는 데이터 소스에 다시 쓰기 위한 데이터를 입력하지 않습니다.

대부분의 데이터 액세스가 읽기 전용으로 수행되므로 Web Forms 데이터 바인딩 아키텍처는 단방향 특성을 갖습니다. 즉, 데이터 바인딩에서는 컨트롤에 데이터를 표시만 하고 그 컨트롤의 데이터를 데이터 소스에 쓰지는 않습니다.

단방향 데이터 바인딩을 사용하면 Web Forms 페이지의 효율성이 높아집니다. 그러나, 업데이트를 수행하려면 페이지에 훨씬 더 많은 오버헤드가 필요합니다. 페이지에는 업데이트에 사용할 수 있는 레코드 복사본이 있어야 하며 레코드를 업데이트, 삽입 및 삭제하기 위한 논리를 포함해야 합니다. 이러한 오버헤드로 인해 페이지 처리 시간이 길어지고 서버 메모리 요구 사항이 증가할 뿐만 아니라 대부분의 페이지에는 업데이트 작업이 필요하지 않으므로, 기본적으로 Web Forms 페이지에는 컨트롤의 데이터를 데이터 소스에 쓰는 방법이 포함되어 있지 않습니다.

데이터 소스를 업데이트하는 페이지를 만드는 경우에는 업데이트 작업을 수행하기 위한 논리를 포함할 수 있습니다. 예를 들어, 포털 페이지에서는 사용자 지정 표시 옵션을 사용자가 선택하도록 할 수도 있습니다. 선택할 수 있는 옵션을 Web Forms 페이지를 사용하여 표시한 다음 사용자 ID를 쿠키에 저장하고 사용자가 선택한 옵션을 데이터베이스에 작성할 수 있습니다. 업데이트에 대한 자세한 내용은 Visual Studio .NET에서 데이터 집합 업데이트를 참조하십시오. 업데이트를 수행하는 방법의 예는 연습: Web Forms에서 데이터베이스 업데이트 쿼리를 사용하여 데이터 업데이트를 참조하십시오.

서버 리소스 사용 최소화

Web Forms 페이지는 서버에서 처리된 다음 브라우저로 전송되기 때문에 페이지에서 데이터 액세스가 수행될 때 처리 시간과 메모리 사용 면에서 서버의 부하가 가중됩니다. 라운드트립 간에 데이터를 저장하여 서버에 유지하려는 경우에는 페이지를 처리하지 않을 때에도 서버 리소스가 사용됩니다.

따라서 Web Forms 페이지에서 데이터 액세스를 수행할 때는 리소스 사용 방법에 주의해야 합니다. 불필요하게 처리 시간이 길거나 서버 메모리를 사용하는 방식으로 데이터 액세스를 디자인하면 웹 응용 프로그램을 사용하는 소수 사용자에게는 도움이 될 수도 있지만 응용 프로그램이 너무 커져 많은 사용자에게 불편을 줄 수 있습니다. 다음과 같은 디자인을 선택할 수 있습니다.

  • 특정 페이지에 필요한 만큼의 데이터만을 데이터 소스에서 가져옵니다.
  • 가능하면 클라이언트측 상태 관리 옵션(예: 뷰 상태)을 사용하여 데이터를 저장합니다.

Web Forms 페이지를 위한 데이터 액세스 디자인에 대한 자세한 내용은 웹 데이터 액세스 전략 권장 사항을 참조하십시오.

원격 프로세스에서 데이터 액세스

Web Forms 페이지는 웹 응용 프로그램의 프레젠테이션 계층입니다. 데이터 액세스 기능을 페이지 안에 만들 수도 있지만, 대개는 데이터 액세스 논리를 UI와 분리하기 위해 데이터 소스와 상호 작용하는 웹 서비스 같은 다른 구성 요소 안에 넣기도 합니다. 자세한 내용은 Visual Studio의 ASP.NET 웹 응용 프로그램 소개를 참조하십시오.

Web Forms 페이지에서는 .NET 구성 요소와 마찬가지로 XML 스트림을 통해 다른 프로세스와 데이터를 교환합니다. 일반적으로는 구성 요소 사이에 전달되는 XML에 대해 직접 작업할 필요가 없습니다. 대개 데이터 집합인 페이지의 데이터 프레임워크에서 이러한 변환을 자동으로 수행합니다. 그러나 응용 프로그램에서 필요하다면 XML 형식의 데이터에 직접 액세스할 수도 있습니다.

웹 응용 프로그램에 대한 액세스 권한

응용 프로그램에 대해 어떠한 데이터 액세스 전략을 선택하든 데이터 액세스에 포함된 보안상의 의미를 알고 있어야 합니다. 대부분의 경우 데이터 리소스는 Windows 또는 데이터베이스 수준의 보안에 의해 보호됩니다. 응용 프로그램에 데이터 액세스를 구현하는 경우, 응용 프로그램에는 런타임에 필요한 데이터에 액세스할 수 있는 충분한 권한이 있어야 합니다. 응용 프로그램이 런타임에 필요로 하는 권한은 종종 사용자가 디자인 타임에 응용 프로그램을 만들고 테스트할 때 사용하는 액세스 권한과 다릅니다.

자세한 내용은 웹 응용 프로그램에 대한 액세스 권한을 참조하십시오. SQL Server 액세스에 대한 자세한 내용은 웹 응용 프로그램에서 SQL Server 액세스를 참조하십시오.

참고 항목

Web Forms 페이지의 데이터 소스 | 웹 데이터 액세스 전략 권장 사항 | Web Forms 데이터 바인딩 | 데이터 폼 마법사 | 데이터베이스 작업 직접 수행 | XML 및 SOAP Serialization