목록전체 글 (155)
센로그
◆ View View는 MVC의 V로, 유저에게 보여줄 뷰(UI)를 의미한다. 요청이 들어오면 Action에서 데이터를 전달받아서 서비스를 통해 처리하고, 다시 돌려받은 데이터를 View로 전달할 것. 그리고 View에서 HTML을 생성해서 응답으로 돌려줄 것임. 이때 View가 어떻게 동작하는지 살펴보겟음. 현재 코드(기본 MVC 프로젝트)에서 View는 어디서 처리하고 있을까? Index.cshtml을 보면 아래와 같이 작성되어있다 @{ ViewData["Title"] = "Home Page"; } Welcome Learn about building Web apps with ASP.NET Core. 이렇듯 C# 과 HTML 을 섞은 것처럼 생긴 포맷을 Razor View Page 라고 함. (.csh..
◆ Model Binding MVC에서 M, 즉 데이터 모델에 관해 알아볼 것임. 데이터 모델도 종류가 다양함. Binding Model 클라에서 보낸 Request를 파싱하기 위한 데이터 모델 유효성 검증 필수 Application Model 서버의 각종 서비스들이 사용하는 데이터 모델 ex) 랭킹 서비스라면 랭킹 데이터같이 서비스쪽으로 넘길 데이터가 필요할 것 View Model 뷰, 즉 Response UI를 만들기 위한 데이터 모델 API Model WebAPI Controller에서 JSON/XML 포맷으로 응답할 때 필요한 데이터 모델 오늘은 그중 Binding Model에 대해 알아볼 것. MVC - 요청 및 처리 순서 MVC 로 설계된 웹에서, 일반적인 요청 처리 순서는 다음과 같다. (f..
◆ Routing HTTP request가 들어오면 이를 담당 handler에게로 라우팅해줘야 한다. (ASP.NET Core에서는, 담당 액션에게로) 이때 라우팅 방법은 크게 두 가지로 나뉜다. 코드를 통한 라우팅 라우팅 패턴 설정 (MVC에서 주로 사용) 어트리뷰트 라우팅 (WebAPI에서 주로 사용) 폴더 구조 자체를 통한 라우팅 폴더 구조 라우팅은 직관적이니 패스하고, 여기서는 코드를 통한 라우팅을 공부해볼 것이다. 라우팅 패턴 다음은 program.cs에서 라우팅을 하던 코드임 //라우팅 패턴 설정 app.MapControllerRoute( name: "default", // '컨트롤러 이름, 액션 이름, 아이디' 형태로 라우팅 패턴에 맞게끔 코드를 연동시켜줌. (기본 관례) pattern: "..
◆ MVC 철학 모델, 뷰, 컨트롤러로 구분하여 코드를 관리하는 패턴 ASP.NET Core에서 MVC는 다음과 같이 사용된다. Model : 데이터 모델. (데이터를 표현하는 구조) 요리 재료 메모리, 파일, DB 등에서 데이터 모델의 형태로 정보를 추출 (DTO 등) Controller : 데이터 가공, 필터링, 유효성 체크, 서비스 호출 재료 손질 및 요리 각종 Service를 통해 요리함 (DI로 서비스 추가) View : 최종 결과물을 어떤 형태로 보여줄지 최종 서빙 이런식으로 역할을 분담하면 유동적으로 기능을 확장 및 변경할 수 있고, 재사용이 쉽다는 장점이 있다. ASP.NET Core에서의 MVC 좀 더 구체적으로 살펴보자. ASP.NET Core에서 MVC에는 Controller/Acti..
◆ 미들웨어 미들웨어는 요청 및 응답을 처리하는 소프트웨어를 의미한다. 미들웨어들을 사용하여 요청 및 응답을 처리하는 파이프라인을 구성한다. 이를 요청 파이프라인(request pipeline)이라고 부른다. 미들웨어는 WebApplication 객체를 통해 구성할 수 있다. var builder = WebApplication.CreateBuilder(args); //WebApplicationBuilder 객체 var app = builder.Build(); //WebApplication 객체 미들웨어의 각 구성 요소는 다음과 같은 작업을 할 수 있다. 요청을 (파이프라인의 다음 구성 요소로) 전달할지 여부를 선택할 수 있다. 전달하지 않고 흐름을 끊는 것을 ShortCut이라고 함 파이프라인의 다음 미..
◆ ASP.NET Core 웹앱(MVC) 이 시리즈에서는 ASP.NET Core 웹앱(MVC) 프로젝트가 어떻게 구성되었는지, 각각 어떤 기능을 하는지 공부할 것이다. MVC는 말 그대로 모델, 뷰, 컨트롤러로 구분하여 코드를 관리하는 디자인 패턴이다. ASP.NET Core 웹앱 프로젝트로 생성하면 된다. 참고로 .NET 6부터는 이전 버전과 달라진 점이 몇가지 있다. Program.cs, Stratup.cs로 분리되어있던 게 통합됨. main 없이 Program.cs가 자동으로 진입점이 됨. 코드들도 대폭 수정됨. Program.cs 기본적으로 ASP.NET Core 웹앱(MVC) 프로젝트를 생성하면, Program.cs에 다음 코드가 포함된다. var builder = WebApplication.C..