개발 이야기/ASP.NET2012. 8. 9. 15:49


이번 시간은 ASP.NET MVC Filter에 대해서 개념을 잡아보아요.


Filter는 요청건의 처리를 하는 파이프라인에서 추가적인 로직을 구현할 수 있게 제공합니다. 예를 들어 URL를 통해 들어온 요청에서 권한을 체크한다던가, 모니터링을 위한 로그를 쓴다던가, 캐싱을 할경우에 Filter를 이용하면 효율적으로 관리할 수 있다. 즉, ASP.NET MVC는 Routing으로 인해 프로젝트 구조를 체계적으로 관리할 수 있는 장점이 있기에 여기에 Filter를 적용하면 깔끔하고 정확한 공통처리가 가능하다. 


 Filter의 사용은 적용하고자하는 Controller의 클래스나 메서드 단위에서 어트리뷰트로 선언을 하면 적용된다.


[FilterName]

public class HomeController : Controller

{

    [FilterName]

    public ActionResult Index()

    {

        ViewData["Message"] = "Welcome to ASP.NET MVC!";

 

        return View();

    }

 

    public ActionResult About()

    {

        return View();

    }

}



요청에 따른 MVC 처리 과정을 보면 최종적으로 Action Filter를 통해 Action result에서 Client에 보내질 컨텐츠가 반환됩니다. 이때 Filter를 사용하면 Action Method 전후나 Result 전후로 로직 제어가 가능하다.


MVC Framework에는 4개의 기본적인 Filter 타입을 제공한다.

1.     Authorization : 인증, 권한 처리
2.     Action : 액션 메서드 전후 처리
3.     Result : 액션 결과 전후 처리
4.     Exception : 에러 처리

위 4개의 Filter에 대해서는 간단히 언급만하고 앞으로 하나하나 자세히 살펴보겠습니다.^^
이번 아티클에서는 필터의 개념정도만 잡아갔으면 합니다.
끝까지 읽어주셔서 감사합니다.

Posted by 사나에