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.cs나 appsettings.json에서 URL, 포트, HTTPS 등 설정 가능 (예: builder.WebHost.UseKestrel()) |
| 보안 | 프로덕션에서는 리버스 프록시(IIS, Nginx) 뒤에 배치 추천. 자체적으로 TLS 지원 |
| 오픈소스 | GitHub에서 소스 코드 공개, 커뮤니티 기여 가능 |
작동 원리 (간단히)
- 요청 처리: HTTP 요청을 받아 ASP.NET Core 미들웨어 파이프라인으로 전달.
- 호스팅: Kestrel만으로 독립 실행 가능하지만, 보안/성능을 위해 IIS나 Nginx와 결합.
- 예시 코드 (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 문서를 확인하세요.
반응형
'IT관련' 카테고리의 다른 글
| Windows 서버에서 REST API 개발 추천 (0) | 2025.10.28 |
|---|---|
| ASP.NET에서 Razor v3란? (0) | 2025.10.28 |
| ASP.NET과 ASP.NET Core의 주요 차이점 (0) | 2025.10.28 |
| VSCode에서 정규식(Regex) 사용하기 (0) | 2025.10.27 |
| Octet: 유래와 발음 정리 (0) | 2025.10.27 |