ASP.NET Core 10.0 MVC 소개
ASP.NET Core 10.0 MVC는 Model–View–Controller(MVC) 패턴을 기반으로 하는 웹 애플리케이션 프레임워크입니다. 이 프레임워크는 .NET 10.0 런타임 위에서 동작하며, 웹 애플리케이션을 명확하게 구조화하고 유지보수성을 높이는 데 목적이 있습니다.
MVC 패턴에서 Model은 데이터와 비즈니스 로직을, View는 사용자에게 보여지는 화면을, Controller는 요청을 받아 Model과 View를 연결하는 역할을 담당합니다. 이러한 구조 덕분에 코드의 역할이 명확히 구분되어 협업과 확장이 용이합니다.
ASP.NET Core 10.0 MVC는 의존성 주입(DI), 미들웨어 파이프라인, 라우팅 시스템, Razor 뷰 엔진, 비동기 프로그래밍(Async/Await) 등 현대적인 웹 개발에 필요한 주요 기능을 모두 제공합니다. 또한 Windows, Linux, macOS 등 다양한 운영체제에서 실행할 수 있는 크로스 플랫폼 환경을 지원합니다.
최근 버전에서는 **최소 호스팅 모델(Minimal Hosting Model)**과 통합 Identity 시스템이 개선되어, 인증과 권한 관리가 더욱 단순하고 유연하게 구성되었습니다. 따라서 ASP.NET Core 10.0 MVC는 클래식 웹 사이트부터 대규모 SaaS 플랫폼까지 폭넓은 범위의 웹 애플리케이션 개발에 적합한 최신 서버 사이드 웹 프레임워크입니다.
기본 프로젝트 구조 살펴보기
Visual Studio 2026에서 "ASP.NET Core Web App (Model–View–Controller)" 템플릿으로 새 프로젝트를 만들면 기본 구조는 다음과 같습니다.
DotNetNote/
├─ Controllers/
│ └─ HomeController.cs
├─ Models/
├─ Views/
│ ├─ Home/
│ │ └─ Index.cshtml
│ └─ Shared/
│ └─ _Layout.cshtml
└─ wwwroot/
이 중 Controllers/HomeController.cs와 Views/Home/Index.cshtml이 가장 기본적인 MVC 흐름을 보여줍니다.
기본 Controller 예제
HomeController는 사용자의 요청을 받아 처리한 뒤 View로 결과를 반환합니다.
기본 템플릿의 HomeController.cs는 다음과 같습니다.
using Microsoft.AspNetCore.Mvc;
namespace DotNetNote.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
// View()는 Views/Home/Index.cshtml을 렌더링합니다.
return View();
}
public IActionResult Privacy()
{
return View();
}
}
}
IActionResult는 View, JSON, Redirect 등 다양한 응답 형식을 반환할 수 있는 MVC의 핵심 인터페이스입니다.
위 예제에서는 View()를 호출하여 Views/Home/Index.cshtml을 렌더링합니다.
기본 View 예제 (Razor 페이지)
Index.cshtml은 Razor 뷰 엔진을 사용하는 HTML 템플릿 파일입니다.
다음은 기본 템플릿에서 생성되는 코드 예시입니다.
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>ASP.NET Core 10.0 MVC에 오신 것을 환영합니다.</p>
</div>
여기서 @{ ... } 구문은 C# 코드를 삽입할 수 있는 Razor 블록이며,
@ViewData["Title"]은 컨트롤러에서 전달한 데이터를 View에서 표시할 때 사용합니다.
Razor Syntax 간단 소개
Razor는 ASP.NET Core에서 사용되는 서버 사이드 템플릿 언어로, HTML과 C# 코드를 자연스럽게 혼합하여 웹 페이지를 생성할 수 있습니다.
아래는 Razor 문법의 기본 예시입니다.
@{
var today = DateTime.Now;
var message = "오늘의 날짜와 시간";
}
<h2>@message</h2>
<p>@today.ToString("yyyy-MM-dd HH:mm:ss")</p>
@{ ... }블록 안에서는 순수 C# 코드를 작성할 수 있습니다.@변수명을 사용하면 C# 변수나 속성을 HTML에 직접 출력할 수 있습니다.- Razor 엔진은
@기호를 만나면 서버에서 코드를 실행하고, 결과만 HTML로 렌더링합니다.
또한 Razor는 제어문도 그대로 사용할 수 있습니다.
<ul>
@for (int i = 1; i <= 3; i++)
{
<li>항목 @i</li>
}
</ul>
이 코드는 HTML로 변환될 때 다음과 같은 결과를 생성합니다.
<ul>
<li>항목 1</li>
<li>항목 2</li>
<li>항목 3</li>
</ul>
마무리
ASP.NET Core 10.0 MVC는 명확한 구조와 강력한 확장성을 제공하는 현대적인 웹 개발 프레임워크입니다. 기본 템플릿만으로도 MVC 패턴의 핵심 개념을 손쉽게 이해할 수 있으며, Razor 문법을 통해 HTML과 C# 코드를 자연스럽게 결합하여 동적인 웹 페이지를 구현할 수 있습니다.