[ASP.NET Core] ASP.NET Core Solution 구조

참조


목적

  • DI(Dependency Injection) 에 대해서 알아보기에 앞서, ASP.NET Core 웹앱(MVC) 프로젝트를 생성할 때 기본으로 여러가지의 폴더들이 생성됩니다.
  • 해당 폴더 및 구조에 대해서 알아보도록 하겠습니다.

프로젝트 생성

  • Visual Studio 2022 실행 후, ASP.NET Core 웹/앱(MVC) 프로젝트를 생성합니다.

프로젝트 구조

  • ASP.NET Core 웹/앱(MVC) 프로젝트를 생성하게 되면, 기본으로 다음과 같은 구조로 프로젝트가 생성됩니다.


ASP.NET Core Solution 구조

  • Properties : launchSetting.json 파일을 포함하빈다. 해당 파일은 application 시작에 필요한 설정 값들이 들어 있습니다. debug profile, environment variable 등이 있습니다.
  • 종속성(Dependencies) : 프로젝트의 모든 dependency 를 포함합니다.
  • wwwroot : static files 저장, Views\_ViewImports.cshtml:globally @using 코드가 있고, TagHelpers 에 add 되어 있습니다.
  • Controllers : 일반적인 C# 클래스로서 Microsoft.AspNetCore.Controller 클래스를 파생해야 합니다.
  • Models : 일반적인 C# 클래스로서, 데이터를 저장하거나 제공합니다.
  • Views : cshtml 이라는 특수파일로써, HTML 문서에서 C# 구문을 사용할 수 있는 문서 입니다. C# 구문은 Razor 라고 불리는 특수 문법을 사용합니다.


MVC 모델

  • MVC 모델은 콘트롤러에 데이터를 담는 그릇을 제공하는데, 콘트롤러와만 소통하고, 뷰와는 상관없습니다.
  • 만약 쇼핑몰을 운영한다면, 상품에 관한 모델을 정의할 수 있습니다.
  • 상품 모델에 저장할 수 있는 데이터는 상품코드, 상품 이름, 잔위 수량, 가격, 공급처 등이 있습니다.
  • 모델은 데이터 검증을 하는데 도움을 줄 수 있는데, 정해진 범위를 벗어난 가격을 입력하지 못하도록 할 수 있습니다.

MVC 뷰

  • 뷰는 결국 사용자가 볼 화면을 구성합니다.
  • 사용자가 볼 화면은 뷰를 기반으로 생성된 html 문서가 사용자의 브라우저에 의해 화면에 렌더링 된 것입니다.
  • 뷰는 콘트롤러와 상호작용하고, 모델과는 상호작용하지 않습니다.

MVC 콘트롤러

  • MVC의 핵심 요소입니다.
  • 뷰와 모델 사이에서, 그들과 각각 상호작용 합니다.
  • 모든 요청을 받아서, 요청에 따른 처리를 하며, 모델에 데이터를 담아, 뷰에게 넘깁니다.
  • 데이터를 받은 뷰는 .html 파일로 변환되어, 사용자에게 보내지고, 사용자의 브라우저는 그것을 렌더링하여 화면에 표출합니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY