연습 - 템플릿에서 ASP.NET Core 웹앱 프로젝트 만들기

완료됨

이 연습에서 다음을 수행합니다.

  • 템플릿에서 ASP.NET Core 웹앱 프로젝트를 만듭니다.
  • 만들어진 프로젝트의 구조를 살펴봅니다.

템플릿을 사용하여 ASP.NET Core 웹앱 만들기

Visual Studio Code에서 새 프로젝트를 만듭니다.

  1. 탐색기 보기를 선택합니다.

    탐색기 보기를 선택하는 것을 보여 주는 스크린샷.

  2. .NET 프로젝트 만들기 단추를 선택합니다. 또는 Ctrl++를 사용하여 명령 팔레트를 브링업한 다음 ".NET"을 입력하여 .NET을 찾아 선택할 수 있습니다. 새 프로젝트 명령을 찾아 선택합니다.

    .NET 프로젝트 만들기를 선택하는 것을 보여 주는 스크린샷.

  3. 목록에서 ASP.NET Core Empty 프로젝트 템플릿을 선택합니다.

  4. 프로젝트 위치 대화 상자에서 프로젝트를 포함할 MyWebApp이라는 폴더를 만듭니다.

  5. 명령 팔레트에서 프로젝트 이름을 대문자와 소문자를 맞춰서 MyWebApp으로 지정합니다. 이 정확한 프로젝트 이름을 사용하는 것은 이 지침의 코드에 대한 네임스페이스가 사용자의 네임스페이스와 일치하는지 확인하는 데 중요합니다.

  6. 명령 팔레트에서 프로젝트 만들기를 선택합니다.

프로젝트 구조 살펴보기

MyWebApp 프로젝트 폴더 콘텐츠는 Visual Studio Code 탐색기에 표시됩니다.

Visual Studio Code 탐색기의 프로젝트 파일 스크린샷.

터미널이나 명령줄에서 새 프로젝트를 만듭니다.

  1. 프로젝트가 포함될 디렉터리(cd)로 변경합니다.

  2. .NET CLI 명령 를 실행하여 dotnet new이라는 디렉터리에 ASP.NET Core 웹앱을 만듭니다.

    dotnet new web -o MyWebApp
    

    MyWebApp이라는 디렉터리에 새로운 ASP.NET Core 빈 웹 프로젝트가 만들어집니다.

    명령 구문은 다음과 같습니다.

    • dotnet new: 프로젝트, 솔루션, 라이브러리, 구성 및 기타 특수 파일과 같은 템플릿을 기반으로 다양한 .NET 개발 아티팩트를 만들기 위한 .NET CLI 명령입니다.
    • web: 콘텐츠 예가 없는 ASP.NET Core 빈 웹 프로젝트를 만드는 데 사용되는 프로젝트 템플릿입니다. web.NET SDK에서 사용할 수 있는 여러 기본 제공 프로젝트 템플릿 중 하나입니다.
    • -o: 출력 옵션은 새 프로젝트가 만들어지는 디렉터리를 지정합니다.
      • 디렉터리가 존재하지 않으면 .NET CLI가 디렉터리를 만듭니다.
      • 프로젝트가 만들어진 디렉터리는 기본 프로젝트 이름, 네임스페이스, 어셈블리 이름(컴파일된 출력의 이름)으로 사용됩니다.
      • 출력 옵션 -o <directory>를 사용하지 않으면 현재 디렉터리가 사용됩니다.
  3. MyWebApp 프로젝트 폴더를 엽니다.

프로젝트 구조 살펴보기

MyWebApp 프로젝트 폴더 콘텐츠는 Visual Studio Code 탐색기에 표시됩니다.

Visual Studio Code 탐색기의 프로젝트 파일 스크린샷.

다음 섹션에서는 빈 ASP.NET Core 프로젝트의 주요 프로젝트 폴더와 파일에 대한 개요를 설명합니다.

MyWebApp.csproj 프로젝트 파일

.csproj 프로젝트 파일은 다음 용도로 사용됩니다.

  • 프로젝트 빌드 방법 구성
  • 대상으로 삼을 .NET 버전을 지정합니다
  • 프로젝트 종속성 관리

.sln 솔루션 파일

ASP.NET Core 프로젝트가 Visual Studio Code(C# 개발 키트 확장 사용)에서 만들어지거나 열릴 경우 [프로젝트 이름].sln 솔루션 파일이 만들어집니다. [프로젝트 이름].sln 솔루션 파일에는 빌드 정보, 설정 및 특정 프로젝트와 연관되지 않은 기타 파일을 포함하여 하나 이상의 관련 프로젝트에 대한 정보가 포함되어 있습니다.

obj 폴더

obj 폴더에는 원본 파일에서 생성된 컴파일된 개체 파일을 포함하여 빌드 시스템에서 사용되는 중간 파일이 들어 있습니다. 최종 빌드 출력은 빌드 프로세스 중에 만들어진 bin 폴더에 저장됩니다.

Properties/launchSettings.json 파일

Properties/launchSettings.json 파일에는 개발 중에 앱이 시작되는 방법에 대한 구성 데이터가 포함되어 있습니다. 이러한 설정에는 앱이 사용하는 루트 URL(예: applicationUrl)을 지정하는 https://localhost:{port} 속성이 포함됩니다. 여기서 {port}는 프로젝트가 만들어질 때 할당된 임의의 로컬 포트 번호입니다.

launchSettings.json 파일에는 다음 구성이 포함되어 있습니다.

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7140;http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Program.cs 파일

Program.cs 파일은 ASP.NET Core 앱의 진입점 역할을 하며 다음을 포함한 몇 가지 주요 용도가 있습니다.

  • 호스트 구성: 웹 서버 설정을 포함하여 호스트를 구성합니다.
  • 서비스 등록: 데이터베이스 컨텍스트, 로깅, 특정 프레임워크에 대한 전문 서비스 등의 서비스를 앱 기능에 추가합니다.
  • 미들웨어 파이프라인 구성: 앱의 요청 처리 파이프라인을 일련의 미들웨어 인스턴스로 정의합니다.
  • 환경 구성: 개발, 준비, 프로덕션에 대한 환경 관련 설정을 지정합니다.

새로 만든 빈 ASP.NET Core 프로젝트에서 Program.cs 파일에는 다음과 같은 최소 코드가 포함되어 있습니다.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

이 파일의 다음 코드 줄은 미리 구성된 기본값으로 WebApplicationBuilder를 만들고 앱을 빌드합니다.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet() 메서드는 HTTP GET 요청을 처리하는 엔드포인트를 직접 정의합니다.

app.MapGet("/", () => "Hello World!");

app.MapGet("/"): HTTP GET 요청에 대한 경로를 정의합니다. /은 이 경로가 앱의 루트 URL에 대한 요청에 응답한다는 것을 나타냅니다. 예를 들어, http://localhost:{port}/, 여기서 {port}는 프로젝트 만들 때 Properties/launchSettings.json 파일에서 임의로 할당된 포트 번호입니다.

() => "Hello World!": 요청 처리기 역할을 하는 람다 식입니다. 루트 URL에 GET 요청이 이루어지면 이 람다 식이 실행되고 "Hello World!"라는 문자열이 반환됩니다.