Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

ASP.NET Core의 Kestrel 웹 서버란 무엇인가? 개념부터 사용법까지

Kestrel은 ASP.NET Core를 위한 크로스 플랫폼(cross-platform) 웹 서버입니다. .NET Core가 지원하는 모든 플랫폼과 버전에서 동작하며, ASP.NET Core에는 기본적으로 내장 웹 서버로 포함되어 있어 별도의 설치 없이 바로 사용할 수 있습니다.

Kestrel의 주요 특징

Kestrel은 단독으로 엣지 서버(edge server), 즉 인터넷에 직접 노출되어 클라이언트로부터 들어오는 HTTP 요청을 직접 처리하는 웹 서버로 활용할 수 있습니다. Kestrel 환경에서 앱을 호스팅하는 프로세스는 dotnet.exe입니다.

다만 Kestrel은 InProcess 호스팅 모델에서는 사용되지 않습니다. Out of Process 호스팅 모델에서는 아래 두 가지 방식 중 하나로 Kestrel을 활용할 수 있습니다.

  • Kestrel을 인터넷 연결(internet-facing) 웹 서버로 단독 사용
  • 역방향 프록시(reverse proxy) 서버와 함께 조합하여 사용

.NET Core CLI로 Kestrel 실행하기

.NET Core CLI를 사용해 ASP.NET Core 애플리케이션을 실행하면, Kestrel이 들어오는 HTTP 요청을 처리하는 유일한 웹 서버로 동작합니다.

.NET Core CLI는 지정된 템플릿을 기반으로 새 프로젝트, 구성 파일, 솔루션을 생성할 수 있으며, 프로젝트에 필요한 종속성과 도구를 복원(restoer)하고, 프로젝트와 모든 종속성을 빌드한 뒤 실행하는 등의 작업을 수행합니다.

실행 절차

  1. Windows 명령 프롬프트(또는 터미널)를 실행합니다.
  2. ASP.NET Core 프로젝트가 있는 폴더로 디렉터리를 이동합니다.
  3. dotnet run 명령을 입력합니다.

.NET Core CLI가 프로젝트를 빌드하고 실행하면, 애플리케이션에 접속할 수 있는 URL이 화면에 표시됩니다. 일반적으로 https://localhost:5000 주소로 애플리케이션에 접근할 수 있습니다.

호스팅 프로세스 확인

Kestrel 환경에서는 앱을 호스팅하고 실행하는 프로세스가 dotnet.exe입니다. 따라서 브라우저에서 https://localhost:5000에 접속한 후 작업 관리자 등에서 프로세스 목록을 확인하면, 해당 앱이 dotnet 프로세스로 실행 중인 것을 확인할 수 있습니다.