응용 프로그램 데이터 캐싱

Visual Studio 2010

업데이트: 2007년 11월

ASP.NET에는 대량의 서버 리소스를 만들어야 하는 개체를 메모리에 저장할 수 있는, 강력하고 사용하기 쉬운 캐싱 메커니즘이 있습니다. 이러한 리소스 형식을 캐싱하면 응용 프로그램의 성능을 대폭 개선할 수 있습니다.

캐싱은 각 응용 프로그램의 전용 캐시 인스턴스로 Cache 클래스에 의해 구현됩니다. 캐시 수명은 응용 프로그램 수명과 관련되어 있습니다. 응용 프로그램이 다시 시작되면 Cache 개체가 다시 만들어집니다.

Cache 클래스는 사용하기 쉽도록 디자인되었습니다. Cache에 항목을 배치하고 나중에 단순한 키/값 쌍을 사용하여 검색할 수 있습니다. 이를 수행하는 방법에 대한 자세한 내용은 방법: 캐시에 항목 추가방법: 캐시된 항목의 값 검색을 참조하십시오.

Cache 클래스는 항목이 캐시되는 방식과 기간을 사용자 지정할 수 있는 강력한 기능을 제공합니다. 예를 들어, 시스템 메모리가 부족해지면 캐시는 거의 사용되지 않거나 중요하지 않은 항목을 자동으로 제거하여 메모리를 확보합니다. 이 기술을 청소라고 하는데, 청소는 캐시에서 만료된 데이터가 귀중한 서버 리소스를 소모하지 않도록 하는 방법 중 하나입니다.

청소가 수행될 때 Cache 개체가 특정 항목에 다른 항목보다 높은 우선 순위를 부여하도록 할 수 있습니다. 항목의 중요도를 나타내려면 Add 또는 Insert 메서드를 사용하여 항목을 추가할 때 CacheItemPriority 열거형 값 중 하나를 지정할 수 있습니다.

Add 또는 Insert 메서드를 사용하여 캐시에 항목을 추가할 때 항목에 대한 만료 정책을 설정할 수도 있습니다. DateTime 값에 항목이 만료되는 정확한 시기(절대 만료)를 지정하여 항목의 수명을 정의할 수 있습니다. 또는 TimeSpan 값을 사용하여 상대(sliding) 만료를 지정할 수도 있습니다. 이 값을 사용하면 항목이 마지막으로 액세스된 시기를 기준으로 해당 항목이 만료되기 전까지의 경과 시간을 지정할 수 있습니다. 만료된 항목은 캐시에서 제거됩니다. 캐시에 이 항목을 다시 추가하지 않은 채 해당 값을 검색하려고 하면 null(Visual Basic의 경우 Nothing)이 반환됩니다.

캐시에 저장된 일시적인 항목(예: 데이터가 정기적으로 새로 고쳐지는 항목, 설정 시간 동안만 유효한 항목)의 경우 일반적으로 데이터가 현재 상태를 유지하는 동안 캐시에 해당 항목을 유지시키는 만료 정책을 설정합니다. 예를 들어, 다른 웹 사이트로부터 데이터를 가져와서 경기 득점 상황을 추적하는 응용 프로그램을 작성하는 경우에는 소스 웹 사이트에서 해당 점수가 변경될 때까지 경기의 점수를 캐시할 수 있습니다. 이 경우에는 다른 웹 사이트가 점수를 업데이트하는 주기를 기준으로 만료 정책을 설정할 수 있습니다. 최근 점수가 캐시에 있는지 여부를 확인하는 코드도 작성할 수 있습니다. 해당 점수가 최신 점수가 아니면 코드는 소스 웹 사이트로부터 점수를 읽고 새 값을 캐시하면 됩니다.

마지막으로 ASP.NET을 사용하면 외부 파일이나 디렉터리(파일 종속성) 또는 다른 캐시된 항목(키 종속성)을 기준으로 캐시된 항목의 유효성을 정의할 수 있습니다. 관련 종속성이 있는 항목이 변경되면 캐시된 항목이 무효화되며 캐시에서 제거됩니다. 데이터 소스가 변경되면 이 기술을 사용하여 캐시에서 항목을 제거할 수 있습니다. 예를 들어, XML 파일의 금융 데이터를 처리하는 응용 프로그램을 작성하는 경우, 파일의 데이터를 캐시에 삽입하고 해당 XML 파일에 대한 종속성을 유지 관리할 수 있습니다. 파일이 업데이트되면 해당 항목이 캐시에서 제거되고 응용 프로그램은 XML 파일을 다시 읽으며 새로 고친 데이터를 캐시에 넣습니다.

6hbbsfk6.alert_note(ko-kr,VS.100).gif참고:

Cache 개체는 포함된 항목의 콘텐츠에 대한 정보를 포함하지 않고 이러한 개체에 대한 참조만 보유합니다. 또한 해당 종속성을 추적하고 만료 정책을 설정하는 수단을 제공합니다.

이 기능을 사용하는 방법에 대한 자세한 내용은 방법: 캐시에 항목 추가를 참조하십시오.

표시: