C# WriteSubstitution - OutputCache


웹을 개발하는데 있어서 캐시를 적절히 사용하면 웹 서버의 성능을 비약적으로 끌어 올릴 수 있다.

 

아래와 같이 특정 액션이 자원을 많이 소모하여 얻어낸 결과를 사용자가 요청할 때마다 얻어와야 하는 곳에서 OutputCache Attribute를 사용함으로써 선택적으로 캐시를 사용할 수 있다.

위와 같이 설정이 되면 10초 동안 서버에서는 캐시 된 정보를 반환하도록 되어 있다.

 

그렇지만 캐시가 되어 있는 상황에서도

일부 데이터는 갱신되어야 하는 시나리오가 있을 수 있을 것이다.

이럴 때 사용할 수 있는 방안 중에 Response.WriteSubstitution를 소개하도록 하겠다.

 

@ViewBag.Time : 서버에서 캐시 된 값을 Duration 시간 동안 출력한다.

@{ Response.WriteSubstitution((context) => DateTime.Now.ToString()); } : 캐시 된 Content에서도 요청 시 마다 새로운 값을 출력이 되도록 해주는 메소드 ( Action 메소드를 통해 delegate를 구현하였다. )

 

위와 같이 설정하고 아래 화면에서 확인해 보도록 하자.

첫번째 형광색 표시가 WriteSubstitution으로 출력된 값이고

두번째 형광색 표시가 캐시 된 값을 보여주고 있다.

+ Recent posts