IT관련

Kestrel 웹 서버란?

파란하늘999 2025. 10. 28. 11:17

Kestrel은 ASP.NET Core 애플리케이션의 기본 웹 서버로, Microsoft에서 개발한 크로스플랫폼 HTTP 서버입니다. 가볍고 고성능을 강조하며, 개발부터 프로덕션 환경까지 널리 사용됩니다. 이전 대화에서 ASP.NET Core와 IIS를 언급했는데, Kestrel은 IIS와 달리 독립적으로 동작할 수 있으며, IIS를 프론트엔드 프록시로 활용할 수도 있어요. 아래에 주요 특징을 정리하겠습니다.

주요 특징

항목 설명
플랫폼 지원 Windows, Linux, macOS 등 크로스플랫폼 지원 (Mono나 .NET Core 기반)
성능 이벤트 기반, 비동기 I/O로 고성능과 낮은 메모리 사용량. ASP.NET Core의 기본 서버로 최적화됨
기본 역할 ASP.NET Core 앱을 호스팅하며, 개발 시 dotnet run으로 자동 실행
구성 Program.csappsettings.json에서 URL, 포트, HTTPS 등 설정 가능 (예: builder.WebHost.UseKestrel())
보안 프로덕션에서는 리버스 프록시(IIS, Nginx) 뒤에 배치 추천. 자체적으로 TLS 지원
오픈소스 GitHub에서 소스 코드 공개, 커뮤니티 기여 가능

작동 원리 (간단히)

  1. 요청 처리: HTTP 요청을 받아 ASP.NET Core 미들웨어 파이프라인으로 전달.
  2. 호스팅: Kestrel만으로 독립 실행 가능하지만, 보안/성능을 위해 IIS나 Nginx와 결합.
  3. 예시 코드 (ASP.NET Core 8+):
    var builder = WebApplication.CreateBuilder(args);
    builder.WebHost.UseKestrel(options => {
        options.ListenLocalhost(5000);  // 로컬 5000 포트 리스닝
    });
    var app = builder.Build();
    app.Run();

Kestrel은 ASP.NET Core의 핵심 구성 요소로, 새로운 프로젝트에서 기본 선택지입니다. 더 자세한 설정은 Microsoft Learn 문서를 확인하세요.

반응형