.NET

ASP.NET Core의 Async

controller에서의 async/await, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable

20 면접 질문·
Mid-Level
1

ASP.NET Core controller action에서 async/await를 사용하는 이유는 무엇인가요?

답변

controller에서 async/await를 사용하면 I/O 작업(데이터베이스, 외부 API) 중에 thread pool의 thread를 해제합니다. 이를 통해 대기하는 동안 thread가 다른 요청을 처리할 수 있어 서버 확장성이 향상됩니다. async가 없으면 thread가 차단된 채 불필요하게 리소스를 소비하여 동시 요청 수가 제한됩니다.

2

controller action이 async/await를 사용하지 않고 Task<IActionResult>를 반환하면 어떻게 되나요?

답변

async/await 없이 Task<IActionResult>를 반환하는 것은 기존 Task를 직접 반환하는 경우(return dbContext.SaveChangesAsync();)에는 작동합니다. 하지만 async 키워드가 없으면 메서드 본문에서 await를 사용할 수 없습니다. 대부분의 경우 async를 사용하면 여러 비동기 작업을 await하고 try/catch로 오류를 처리할 수 있습니다.

3

controller action에서 ToList()와 ToListAsync()의 차이점은 무엇인가요?

답변

ToList()는 동기식이며 데이터베이스 쿼리 중에 thread를 차단하여 확장성을 제한합니다. ToListAsync()는 비동기식이며 I/O 작업 중에 thread를 해제하여 서버가 다른 요청을 처리할 수 있게 합니다. 지원되는 동시 요청 수를 최대화하려면 controller에서 항상 ToListAsync()를 사용하세요.

4

controller action에서 CancellationToken의 역할은 무엇인가요?

5

ASP.NET Core controller action에서 CancellationToken을 얻으려면 어떻게 하나요?

+17 면접 질문

다음 면접을 위해 .NET을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기