its_jh_stroy

[C#] .NET 8.0이 실행되는 과정 본문

C#

[C#] .NET 8.0이 실행되는 과정

_J_H_ 2024. 1. 15. 20:48

.NET 8.0이 실행되는 과정

ASP.NET Core 웹앱(Model-View-Controller)로 프로젝트를 만들어보면 MVC 패턴에 맞춰 여러 폴더와 파일이 생성된다.
프로젝트를 실행하면 Home 컨트롤러의 Index 페이지가 _Layout.cshtml 구조 안에서 호출된다.
만약 왜 이렇게 실행되는지 모른다면 웹 개발을 하는 데 있어서 상당한 어려움을 겪게 될 것이다.
따라서 프로젝트 구조도 어느 정도 파악할 겸 .NET 8.0 웹 애플리케이션이 실행되는 과정에 대해 정리해 보았다.
 
결과적으로 기본 프로젝트를 실행할 때 호출되는 순서는 아래와 같다.
- Program.cs -> 컨트롤러(HomeController.cs) -> 뷰(Index.cshtml) -> 레이아웃 파일(_Layout.cshtml)
 

Program.cs

프로그램 실행 시 가장 먼저 호출되는 파일이다.
의존성 주입과 미들웨어를 설정하고 애플리케이션을 실행하는 역할을 한다.
 

미들웨어

들어오는 요청을 어떻게 처리할지 결정하는 역할을 한다.
보통 Use...와 같은 이름으로 시작한다.
아래 각각의 메서드가 미들웨어라고 생각하면 된다.

// Program.cs

// 개발 환경이 아닐 때 예외가 발생하면 /Home/Error 경로로 이동
app.UseExceptionHandler("/Home/Error");

// 웹사이트가 항상 https를 사용하도록 설정
app.UseHsts();

// http 요청을 https로 리다이렉트하는 미들웨어
app.UseHttpsRedirection();

// 정적 파일, 라우팅, 인증(접근 권한 검사) 제공
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

 


Controller

Program.cs의 app.MapControllerRoute 미들웨어에서 결정되 액션 메서드가 실행된다.
기본 설정은 HomeController로 되어있다.
 

View

위 컨트롤러에서 반환하는 페이지가 호출된다.
기본 설정은 Index 페이지로 되어있다.
 

_Layout

반환된 뷰에서 참조하는 레이아웃 페이지가 호출된다.
따로 설정하지 않으면 바로 마스터 레이아웃 페이지를 호출한다.
해당 페이지는 Views/_ViewStart.cshtml 파일에서 확인할 수 있다.