본문 바로가기

ASP.NET&C#/ASP.NET MVC

[ASP.NET CORE/MVC] #2 프로젝트 파일 구성

[ASP.NET CORE/MVC] #2 프로젝트 파일 구성

 

안녕하세요 미나라이입니다.

ASP.NET CORE MVC WEB 두번째 포스팅이네요

 

이번에는 저번 포스팅에서 만든 프로젝트의 전체 구성에 대해서 알아보겠습니다.

프로젝트 환경

OS : Windows 10

IDE : Visual Studio Code 1.62.2

.Net SDK : 5.0.403

.Net Runtime : .NetCore.App 5.0.10 / 5.0.12

 

프로젝트의 흐름에 대한 포스팅이 아니라

단순히 이 폴더는 어떤 역할을 하는지에 대한 기술입니다.

프로젝트 흐름에 대한 포스팅은 추후에 작성하도록 하겠습니다.

 

먼저 폴더를 다 펼치지 않았을때는 이런 상태입니다.

여기서 .vscode , bin, obj 폴더는 프로젝트 빌드 및 배포할때 사용하는 부분이기 때문에 안펼쳐봐도 무방합니다.

 

프로그램 동작 순서와는 무관하게 위에서부터 차례대로 기술 해 보겠습니다.

1. Controllers폴더

MVC의 C에 해당하는 부분이네요

웹 페이지에 내용을 뿌려줄 때 요청과 응답을 해주는 클래스들이 모여있는 곳입니다.

프로젝트를 생성 할 때 디폴트로 만들어주는게 HomeController.cs파일인데

프로젝트마다 이 파일을 가져가는 경우도 있고 지우고 새로 작성하는 경우도 있습니다.

2. Models폴더

MVC의 M에 해당하는 부분입니다.

이쪽 폴더는 여러가지 명칭으로 불리는 것 같은데

단순하게 Model이라고 할 수도 있고

DTO라고 할 수도 있고

VO라고 할 수도 있는 내용들이 주로 들어가는 곳이라고 보면 될 것 같습니다.

데이터를 넣고 빼거나 페이지 이동을 할 때 변수들을 일일히 선언해서 사용하는게 번거롭기 때문에

여기에 전부 선언해놓고 모델 자체를 호출하는 식으로 사용하기 위해 만들어진 곳입니다.

 

여기도 마찬가지로 폴더명을 임의로 바꿔서 사용하는 경우도 많습니다.

 

Model클래스가 본격적으로 사용되어지는 부분

1. 웹페이지에서 컨트롤러로 처리를 요청하면서 데이터를 받을 경우

2. 데이터베이스에서 결과값을 변수로 담을 경우

3. Properties폴더

디버깅 및 웹서버 설정 파일이 디폴트로 적혀 있습니다.

이 폴더를 자동으로 만들어 주기 때문에 윈도우 환경에서 웹서버를 설치하지 않아도

프로젝트가 자동으로 실행 되는 이유입니다.

파일 내용을 수정함으로써 웹서버 설정 내용을 변경 할 수 있습니다. 

4. Views폴더

MVC의 V에 해당하는 부분입니다.

여기는 컨트롤러에서 요청 후 돌아온 값을 HTML태그와 함깨 렌더링(화면에 표시) 해 주는 부분입니다.

파일을 슬쩍 보면 친숙한 HTML태그가 있지만

그 외에도 이것저것 있는 것을 볼 수 있습니다.

폴더 확장자가 cshtml인데

자바의 jsp파일처럼 컴파일 후에 html로 변환 해 주기 때문에 확장자가 저런 겁니다.

5. wwwroot폴더

웹프로젝트의 루트폴더라고 생각하면 편합니다.

이 폴더는 나중에 빌드,배포작업을 할때 컴파일이 되지 않는 부분이기 때문에

보통 스크립트 파일이나 프로퍼티 파일(3. 프로퍼티 파일과는 다른 내용) 등을 넣습니다.

대신에 스크립트 링크를 달 때는 이렇게 해 주어야 합니다. 

<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />

<link rel="stylesheet" href="~/css/site.css" />

<script src="~/lib/jquery/dist/jquery.min.js"></script>

<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>

 

6. 그 외 프로젝트 기본 파일

appsettings.json

딱히 건들인 적은 없지만

여기에 데이터베이스 커넥션 정보를 넣는 경우도 있다고 합니다.

저는 클래스로 만들어봐서 여기는 써 본 적이 없네요

Program.cs

웹서버가 동기되고 가장 먼저 실행되는 곳입니다.

서버가 동기되면서 파라미터를 넣어주는 일이 생기지 않는 한

실제로 거의 수정 할 일이 없는 구간 입니다.

Startup.cs

Program.cs가 실행되면서 호출되는 부분입니다.

이곳에서는 초기 설정 데이터들을 기술 할 수 있습니다.

서버가 동기되고 딱 한번만 타는 곳입니다.

Logger설정이라든지

세션 설정이라든지

그 외 외부 라이브러리 기본 설정이라든지

초기에 설정해야 될 내용들을 기술하는 곳입니다.

 

이상으로 간단하게 프로젝트 기본 폴더 구성에 대해서 알아보았습니다.

728x90
반응형