ASP.NET MVC에서 WebActivator를 사용해 보자

- Bootstraper 기능

 이 포스트에 있는 내용이 언제나 확실한 정답은 아닙니다. 진실이라고 생각해 왔던 전제가 시간의 지남에 따라 들어나지 않았던 다른 이면 때문에 좋은 방향으로 이끌어 낼 수 있는 역할로 변환 되는게 역사적으로도 많은 증명 있었습니다. 그렇지만 저는 현재 상황에서 최선의 답을 찾고자 노력하였으며 이 글을 읽는 다른 분들에게 다음 길을 갈 수 있도록 도와주는 디딤돌이 되고자 노력하고자 포스팅을 통해 공유하고자 하는 것입니다. 그리고 프로그래머라는 타이틀을 달고 살아야 한다면 "왜"라는 의문을 항상 가지고 다니면서 자신의 위치에 안주하지 않고 항상 노력하는 모습으로 살아 가고자 합니다. 언제든 지적이나 오류가 있으면 피드백 부탁 드리겠습니다.

ing™       



 WebActivator는 ASP.NET이 IIS에서 로드가 되기 전에 미리 필요한 초기화 작업을 개발자의 명시없이 진행할 수 있는 방안을 제시해 주고 있다. 더군다나 다른 개발자가 배포한 참조 DLL에서 초기화를 해야 하는 경우에도 WebActivator가 암시적으로 초기화를 할 수 있도록 할 수 있다. 우선 사용하기 위해서는 Nuget에서 WebActivator로 검색해서 설치를 하도록 하자. 아래 그림을 참고로 설치를 하자


[그림1] WebActiviator 검색

(Install 버튼을 눌러 설치를 한다.)


[그림2] WebActivator 설치



 이제 프로젝트에 WebActivator이 설치가 되었다. 이제 프로젝트 아무데서나 BootStrapper.cs(필자가 임의로 만들었다) 파일을 생성해 아래 코드와 같이 입력해 보자.


[코드1] Activator 실행 코드


 위 소스코드에서 1, 2, 3번줄을 살펴 보자. 

- [assembly: WebActivator.PreApplicationStartMethod(typeof(TDDMVCTest.App_Start.BootStrapper), "PreStart")] : 최초 Web Server가 실행 할 때  Application Start가 되기 전에 실행 됨

- [assembly: WebActivator.PostApplicationStartMethod(typeof(TDDMVCTest.App_Start.BootStrapper), "PostStart")] : 최초 Web Server가 실행 되고 나서 Application End가 되고 나서 실행 됨

- [assembly: WebActivator.ApplicationShutdownMethod(typeof(TDDMVCTest.App_Start.BootStrapper), "Shutdown")] : Web Server가 종료되기 전에 실행 됨


 클래스 위에서 위와 같이 선언하여 사용할 수 있으며 자신이 작성한 코드의 초기화나 종료를 암시적으로 실행시킬 수 있으며 다른 개발자가 배포한 모듈에서 필요한 초기화를 WebActivator를 통해서도 초기화를 진행할 수 있다. 이 기능을 이용해서 Global.asax 파일이나 Web.Config 파일에 집중되어 있던 초기화 작업에 대해서 암시적으로 실행할 수 있는 길이 열렸다. 자세한 사용 기능을 "코드1"에 있는 주석을 읽어 보도록 하자.


소스 코드 자체에 주석과 직관적인 코딩으로 충분히 파악이 가능할 것으로 예상하므로 별도의 설명을 생략하도록 하겠습니다. 포스트의 내용이 장황한 설명 보다는 주석과 소스코드 자체 만으로도 이해할 수 있도록 하기 위해 노력하였습니다. 실 개발에서도 적용할 수 있도록 간단하면서도 현실적인 예제 프로그램을 통해 각 소스를 만들고 이해 시키고자 하였으며 실무에 필요한 개발요구 사항들을 해결 하는데 도움이 되고자 노력하였습니다. 그리고 소스와 같이 있는 주석을 이용해 nDoc이나 별도의 자동 Document 제작 유틸로 API 문서를 만드는 데에도 도움이 되었으면 한다. 
※ DOC에 대한 프로그램 정보 Util link

ing™       


+ Recent posts