[C# 강좌 - 67] MVC Framework 프로젝트 생성하기


Study/C#  2019. 7. 1. 23:04

안녕하세요. 명월입니다.


이글은 C#에서 MVC 프로젝트를 생성하는 방법에 대한 글입니다.


C#으로 웹 프로젝트를 하는 방법으로 ASP.NET의 MVC 프로젝트로 시작하는 방법이 있습니다.

MVC 프로젝트는 말 그대로 Model View Control로 비지니스 로직을 나누어서 개발하는 방법입니다.


그럼 MVC 프로젝트를 생성하겠습니다.

프로젝트 생성은 간단하게 됐습니다. 뭐 크게 어려운 건 없네요.

그럼 기본 설정된 폴더와 클래스 그리고 처리되는 흐름을 소개하겠습니다.

폴더 설명
App_Data 로컬 데이터 베이스가 있는 폴더라고 하는데 저는 사용한 적이 없는 듯 싶습니다.
App_Start MVC 프레임워크에서 Route와 Filter 그리고 css나 js파일의 번들 설정하는 파일이 있는 폴더입니다.
Content css, image등의 컨텐츠 파일이 관리하는 폴더입니다.
Controllers Controller 파일이 있는 폴더입니다.
fonts 폰트를 관리하는 폴더입니다. (저는 google 폰트를 사용하기 때문에)
Models MVC에서 Model 클래스를 관리하는 폴더입니다.
Scripts javascript를 두는 관리하는 폴더입니다.
Views MVC에서 View 파일을 관리하는 폴더입니다.
Web.config 환경 설정 파일
Global.asax 어플리케이션의 실행에서 부터 종료까지 Application의 생애주기를 관리할수 있는 전역 정보 관리 파일.

브라우져에서 url주소로 호출되면 RouteConfig.cs 파일에서 Controller과 Model등을 어떻게 호출할 지 관리됩니다.

예로 /Home/Example/1이 되면 Controllers 폴더에 있는 HomeController의 Example함수에 파라미터 id가 1로 호출이 됩니다.

그리고 위 이미지를 보면 Example함수에서 ActionResult로 리턴이 됩니다.

먼저 View함수를 호출하면 ActionResult 리턴할 수 있습니다. View함수는 아무런 값이 없으면 기본 View폴더 밑의 home 폴더의 Example.cshtml이 호출 될 것입니다.

(Example.cshtml 파일이 없으면 에러를 발생합니다.)

실행 화면입니다.

실행이 잘 됩니다.


MVC에서 전체적인 흐름은 url에서 Controller name/Action name의 형식으로 호출되어 View를 함수를 호출하여 결과를 내보내는 형태까지 확인했습니다.

그럼 Model에 대한 값의 흐름에 대해 설명하겠습니다.


먼저 Models의 폴더에 Node라는 클래스를 추가시킵니다.

추가된 Model를 Controller에서 사용하겠습니다.

파라미터에 Node클래스를 넣어서 Data값을 수정한 다음에 View 함수에 model로써 추가했습니다. 여기에서 ViewBag 프로퍼티는 dynamic 타입으로 되어 있는데 View에서도 ViewBag으로 읽어 올 수 있는 특수 Model 값입니다.

View 함수에 "Example" 이라는 String 값을 넣었는데 이는 View파일에서 Example.cshtml 파일을 읽는 다는 표시입니다.


그럼 다시 Example.cshtml파일을 확인하겠습니다.

Example이라는 h2 태그 밑에 Model의 Data값과 ViewBag의 Data값을 출력하도록 만들었습니다. 참고로 cshtml 페이지 상위에는 Model 타입을 명시합니다.

결과는 「/Home/ExampleTest2?idx=1」의 url로 치고 들어가면 HomeController의 ExampleTest2의 함수를 호출한다. 그리고 Node 클래스의 Idx값에 1를 넣는다.

ExampleTest2의 함수 안에서는 ViewData값에 「ViewBag Test」의 값을 넣고 Node클래스 모델에는 Data값에 「Hello world」의 값을 넣어 출력한다.


지금까지 C#의 MVC 프레임 워크에 대해 설명하였습니다.

제가 글 솜씨가 부족해서 꽤나 복잡한 것처럼 보이지만 한 번만 따라해보면 금방 감이 오실 것입니다.


MVC에서 Filter와 Json 처리 방법등 여러가지 기능이 있지만 여기에 다 넣으면 글이 복잡해 질 것같아서 조금 세션을 나누어서 설명하도록 하겠습니다.


여기까지 C#에서 MVC 프로젝트를 생성하는 방법에 대한 설명이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.