using BusinessLayer.Service;
using DataAccessLayer.Mappers;
using Microsoft.Extensions.FileSystemGlobbing.Internal.Patterns;
namespace HelloASP
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddTransient<ILoginService, LoginService>();
builder.Services.AddTransient<ILoginMapper, LoginMapper>();
builder.Services.AddSession();
var app = builder.Build();
app.UseSession();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
app.Run();
}
}
}
var builder = WebApplication.CreateBuilder(args);
ASP.NET Core 앱을 구성할 수 있는 WebApplicationBuilder 객체를 생성합니다.
builder.Services.AddControllersWithViews();
MVC 패턴을 위한 컨트롤러 + 뷰 지원 등록
HomeController, LoginController 같은 컨트롤러와 Razor 뷰(.cshtml)를 사용할 수 있게 됩니다
builder.Services.AddTransient<ILoginService, LoginService>();
builder.Services.AddTransient<ILoginMapper, LoginMapper>();
의존성 주입(DI)을 위해 서비스 등록
ILoginService 인터페이스를 사용할 경우 실제로는 LoginService 인스턴스를 주입
AddTransient는 매번 새 인스턴스를 생성해주는 방식 (요청마다 새로운 객체)
BusinessLayer.Service.LoginService와 DataAccessLayer.Mappers.LoginMapper 클래스가 이미 정의되어 있어야 함
builder.Services.AddSession();
세션 상태 지원을 추가
이후 사용자별로 데이터를 유지하고 싶을 때 HttpContext.Session을 사용할 수 있게 됨
var app = builder.Build();
위에서 설정한 builder를 기반으로 실제 실행 가능한 웹 앱 객체를 생성
app.UseSession();
세션 미들웨어 활성화
세션을 사용하려면 반드시 이 미들웨어를 파이프라인에 포함
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
기본 라우팅 설정
/로 접근하면 HomeController의 Index 액션이 실행됨
URL이 /Login/Check이면 LoginController.Check() 실행됨
id?는 선택적 파라미터
'C# > 기본' 카테고리의 다른 글
| .cshtml (1) | 2025.05.07 |
|---|---|
| 관심사의 분리 (Separation of Concerns, SoC) (0) | 2025.05.07 |
| launchSettings.json (0) | 2025.05.06 |
| appsettings.json과 appsettings.Development.json (0) | 2025.05.06 |
| .csproj 파일 (0) | 2025.05.06 |
댓글