회사에서 서비스 트래픽은 대부분 ASP.NET Core 로 작성한 API 서버로 받아서 처리한다. ASP.NET Core 서버는 내부적으로 Kestrel 이라는 웹서버를 이용하여 여러 소켓으로 들어오는 요청들을 동시에 처리해 응답하는데, 오늘은 해당 서버들의 내부 Event Loop 작동방식에 대해 정리해보려 한다. ASP.NET Core의 이벤트 루프(Event Loop) 개념ASP.NET Core는 전통적인 블로킹 방식의 스레드 기반 모델이 아니라, 비동기 I/O를 적극 활용하여 이벤트 기반(Event-driven) 비동기 방식으로 동작한다. 하지만 Node.js처럼 단일 이벤트 루프 모델을 사용하는 것은 아니며, 대신 비동기 태스크 기반의 스레드 풀(Thread Pool)과 이벤트 루프(Event ..