'상태관리'에 해당되는 글 1건

  1. 2009/06/21 ASP.NET 상태관리하기



웹 페이지는 Stateless 상태이다. 서버가 클라이언트의 브라우져에게 응답을 하여 페이지를 보내주면 브라우져는 이에 응답하여 페이지를 보여주게 되고, 이후 페이지의 상태변화에 따른값은 저장하지 않는다. 그래서 일반적으로 PostBack일어나면 기존의 저장되어있는 상태값들은 유지가 되지 않는다.

하지만 상태값을 유지해야 할 필요성이 있는 컨트롤들이 많다. 이런것을 위해서 ASP.NET의 경우 ViewState라는 것을 지원하고, 기본적으로 클라이언트측 상태관리 옵션은 Hidden Field, Cookie, Query String가 있다.

  ViewState같은 경우 ASP.NET에서 자동으로 관리를 해준다. 그래서 사용을 할때 그냥 아무런 생각없이 사용하면은 된다. 자동적으로 다 해주니까... 하지만 이건 문제가 상당히 많다.. ViewState를 사용한 소스를 보면 Hidden Field의 값을 보면 상당히 길다.. 그리고 모든 서버 컨트롤의 ViewState를 사용하는 기본 옵션인 EnableViewState값은 true이다. 그래서 내가 생각하고 있지 않지만 Hidden Field값으로 상태유지되는 컨트롤들이 상당히 있다.
  이렇게 많이 사용되는 값들은 매번 PostBack마다 서버에 전송되게 되고, 이러한 상황이 되면 웹페이지가 느리게 된다. 간혹 ViewState에 대한 설명을 보면 HiddenField보다 보안이 강화되었다는 말을 들을 수가 있다. Hidden Field보다 보안이 강화된것은 사실이지만, Base64로 인코딩 되어있다는 사실은 이미 알려져 있고, 간단하게 디코딩만 하면은 ViewState값은 알 수가 있다.
  그래서 나는 쓸데 없이 길기만 하고, 미미한 보안기능을 사용할 바에는 조금이나마 길이가 짧고 서버에게 전송하는 양이 적은 Hidden Field나 Query String을 사용하는게 낫지 않을까 하는게 나의 생각이다.

오랜만에 포스트지만 오래 글을 못쓰겠다.
다음 포스트에서는 프로그램도 만들어 봐야겠다.

저작자 표시 비영리 변경 금지
Posted by 마야울
이전버튼 1 이전버튼