공부/인프런 - Rookiss

Part 6-4-2. ASP.NET Core 둘러보기 : Hello MVC #1

셩잇님 2024. 8. 24. 22:03
반응형

 

 

🔖 ASP.NET Core 둘러보기

 

 지난 시간에는 ASP.NET CORE 학습 전 여러 프로젝트를 만들어보며 세팅하는 법에 대해서 알아보았다. 이번 시간에는 본격적으로 MVC에 대해서 학습하도록 하자.

 


 

🧩 HelloMVC

 

 루키스님의 영상은 .Net Core 3.1을 사용하여서 영상의 내용 일부가 나와 다른 것이 있었다. 먼저 새로 생성한 6개의 프로젝트를 일일히 열어서 확인 할 경우 각 프로젝트들은 program - startup이 짝이 지어져있지만, 나의 경우 startup이 생략되고 이 모든 내용이 program의 들어있었다. 관련해서 다른 학습자도 다음에 학습할 사용자들을 위해 메모를 남겨놓기도 했다.

 

 

 그렇지만 VS 2022, NET 8.0으로 강의를 수강하고 있는 내가 보았을 때 단지 startup.cs와 program.cs가 통합되었을 뿐 크게 차이가 없다. 따라서 구버전과 최신 버전의 프로젝트의 구성요소가 다르더라도 당황하지 말자.

 


 

HelloMVC의 코드 흐름 구조

 

MVC의 Program.cs와 Startup.cs의 내용

 

 먼저 Program.cs 스크립트를 보자. 메인 함수에서는 CreateHostBuilder 함수를 실행하고 있다. 해당 함수는 바로 밑에 있는 함수를 의미하고, 아래 함수에서는 마찬가지로 <StartUp>을 통해 startup.cs를 참조하고 있는 것을 볼 수 있다.

 

 Startup.cs는 개발 서버와 라이브 서비스에 대한 if 구문이 나와있고, 그 밑으로는 서비스에 대한 다양한 옵션을 설정해주는 것을 볼 수 있다. 

 


 

HelloEmpty

 

 일전에 비어있음으로 설정해준 프로젝트를 시작 프로그램으로 설정하여 실행 할 경우 웹 사이트 내에서 "Hello World!"가 출력되는 것을 볼 수 있다. 우리는 이제 이 빈 프로젝트에 MVC 프로젝트와 동일하게 MVC를 구성 할 것이다. MVC의 개념은 다음과 같다.

 

// 구성이 어떻게 되어 있는가?
// M - Model -      데이터 (원자재)
// V - View -       UI (인테리어)
// C - Controller - Controller (액션)

 

 위와 같이 Model, View, Controller의 데이터를 각기 다른 폴더에서 관리할 것이므로 먼저 각각의 폴더(Model, View, Controller)를 생성해주도록 하자.

 

MVC를 따라하기 위해 Empty 프로젝트에 각각의 폴더를 생성해주었다.

 

 각각의 폴더에는 Controlleres에는 HomeController.cs를 생성해주고, Models에는 HelloMessage.cs, Views에는 Home 폴더를 새롭게 생성해주고 index.cshtml을 생성하도록 하자. 이 후 HelloMessage.cs에는 홈페이지를 켰을 때 나타나는 메시지에 대한 클래스를 새롭게 만들어주자. 이는 모델 즉, 데이터를 정의하는 구성요소가 되는 셈이다.

 

namespace HelloEmpty.Models
{
    public class HelloMessage
    {
        public string Message { get; set; }
    }
}

 

 이 다음으로는 Controller 스크립트로 돌아가 마저 작성하도록 하자. 

 

using HelloEmpty.Models;
using Microsoft.AspNetCore.Mvc;

namespace HelloEmpty.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            HelloMessage msg = new HelloMessage()
            {
                Message = "Welcome to ASP.NET Core!"
            };

    	// ViewBag 기능을 이용한다. 이름은 자유롭게 설정할 수 있다.
        // 왜냐하면 다이나믹 타이밍이기 때문이다.
        // 다이나믹 타이밍은 아직 무엇을 뜻하는지 잘 모르겠다.
            ViewBag.Noti = "Input message and click submit";

            return View(msg);
        }
    }
}

 

 일전에 생성한 HelloMessage 클래스를 msg로 만들어주고, 메시지 내용으로는 "Welcome to ASP.NET Core!"로 작성해주도록 한다. 이런식으로 미리 정의된 데이터 구조를 전달해주어도 되고 그렇지 않다면 ViewBag 기능을 이용해 view에도 데이터를 넘길 수 있다. 다음 시간에는 views - home 산하에 있는 index 스크립트를 살펴보도록 하자.

 

 

반응형