Configure() 메서드란?
Configure 메서드는 ASP.NET Core 애플리케이션의 Startup 클래스 내부에 정의되어 있습니다.
이 메서드는 내장 IoC(제어 반전) 컨테이너가 제공하는 IApplicationBuilder 인스턴스를 사용하여 애플리케이션의 요청 파이프라인(request pipeline)을 구성하는 핵심 지점입니다. 즉, 들어오는 HTTP 요청이 어떤 미들웨어를 거쳐 처리될지 결정하는 곳이라고 할 수 있습니다.
기본 매개변수
Configure 메서드는 기본적으로 다음 세 가지 매개변수를 가질 수 있습니다.
- IApplicationBuilder: 애플리케이션의 요청 파이프라인을 구성할 수 있는 메커니즘을 제공하는 인터페이스입니다.
- IWebHostEnvironment: 애플리케이션이 실행 중인 웹 호스팅 환경(개발, 스테이징, 운영 등)에 대한 정보를 제공합니다.
- ILoggerFactory: 애플리케이션 전반에서 사용할 로깅 시스템을 구성할 수 있게 해줍니다.
메서드 호출 순서
런타임 시에는 ConfigureServices 메서드가 Configure 메서드보다 먼저 호출됩니다. 그 이유는 IoC 컨테이너에 사용자 지정 서비스를 미리 등록해 두어야, 이후 Configure 메서드에서 해당 서비스들을 활용할 수 있기 때문입니다.
예제 코드
다음은 개발 환경과 운영 환경에 따라 다르게 동작하도록 요청 파이프라인을 구성한 전형적인 Configure 메서드의 모습입니다.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
if (env.IsDevelopment()){
app.UseDeveloperExceptionPage();
} else {
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>{
endpoints.MapRazorPages();
});
}코드 설명
- UseDeveloperExceptionPage(): 개발 환경에서 상세한 오류 정보를 화면에 표시하여 디버깅을 돕습니다.
- UseExceptionHandler() / UseHsts(): 운영 환경에서는 오류 페이지로 리디렉션하고 HSTS(HTTP Strict Transport Security)를 적용해 보안을 강화합니다.
- UseHttpsRedirection(): HTTP 요청을 HTTPS로 자동 리디렉션합니다.
- UseStaticFiles(): CSS, JavaScript, 이미지 같은 정적 파일을 제공할 수 있게 합니다.
- UseRouting() / UseAuthorization(): 요청 경로를 매칭하고 권한 검사를 수행합니다.
- UseEndpoints(): Razor Pages 등 최종 엔드포인트를 매핑합니다.
미들웨어는 등록된 순서대로 실행되므로, UseRouting이 UseEndpoints보다 먼저 와야 하는 것처럼 각 메서드의 호출 순서가 매우 중요합니다.