
Async/await 및 패턴
async/await, Task, ValueTask, ConfigureAwait, cancellation token, 병렬 실행, deadlock
26 면접 질문·
Senior
1비동기 메서드에서 'await' 키워드의 주요 역할은 무엇입니까?
1
비동기 메서드에서 'await' 키워드의 주요 역할은 무엇입니까?
답변
await 키워드는 Task가 완료될 때까지 비동기 메서드의 실행을 일시 중단하는 동시에 호출 thread를 해제하여 다른 작업을 처리할 수 있게 합니다. 이를 통해 thread 차단을 방지하고 애플리케이션의 확장성을 향상시킵니다. thread를 차단하는 Task.Wait()나 Task.Result와 달리 await는 thread pool 리소스를 효율적으로 사용할 수 있게 합니다.
2이벤트 핸들러를 제외하고 async void를 피해야 하는 이유는 무엇입니까?
2
이벤트 핸들러를 제외하고 async void를 피해야 하는 이유는 무엇입니까?
답변
async void 메서드는 await할 수 없으며 내부에서 발생한 예외는 호출 코드에서 잡을 수 없어 애플리케이션 충돌을 일으킵니다. 또한 await할 Task가 없기 때문에 async void 메서드를 단위 테스트하는 것은 불가능합니다. 이벤트 핸들러는 framework에 의해 호출되며 Task를 반환할 수 없기 때문에 예외입니다.
3어떤 사용 사례에서 Task<T>보다 ValueTask<T>를 선호해야 합니까?
3
어떤 사용 사례에서 Task<T>보다 ValueTask<T>를 선호해야 합니까?
답변
ValueTask는 value type으로, cache처럼 결과가 이미 동기적으로 사용 가능할 때 heap 할당을 피합니다. 이를 통해 고성능 시나리오에서 garbage collector 부담을 줄입니다. Task는 결과가 동기적이더라도 항상 heap에 할당됩니다. 잘못 사용하면 성능이 저하될 수 있으므로 성능 향상이 측정 가능할 때만 ValueTask를 사용하세요.
4
Task<T>와 비교하여 ValueTask<T>에 적용되는 중요한 제약은 무엇입니까?
5
.NET 라이브러리에서 ConfigureAwait(false)의 주요 목적은 무엇입니까?
+23 면접 질문
기타 .NET 면접 주제
C# 기초
Junior
25개 질문LINQ & Delegates
Junior
20개 질문C# 언어 핵심 요소
Junior
15개 질문ASP.NET Core 기초
Junior
18개 질문ASP.NET Core 요청 수명 주기
Junior
20개 질문Configuration & Settings
Junior
20개 질문애플리케이션 라이프사이클
Junior
20개 질문Dependency Injection
Mid-Level
24개 질문Entity Framework Core
Mid-Level
25개 질문Minimal APIs
Mid-Level
18개 질문Web API 개발
Mid-Level
22개 질문ASP.NET Core의 Async
Mid-Level
20개 질문Authentication & Authorization
Mid-Level
18개 질문HttpClient & 네트워킹
Mid-Level
20개 질문JSON 직렬화
Mid-Level
20개 질문Entity Framework Core 고급
Mid-Level
25개 질문C# 고급 기능
Mid-Level
20개 질문Clean Architecture
Mid-Level
20개 질문Logging, Monitoring & Observability
Mid-Level
22개 질문단위 테스트와 xUnit
Mid-Level
20개 질문통합 테스트
Mid-Level
18개 질문Docker & Containerization
Mid-Level
16개 질문NuGet 패키지 관리
Mid-Level
16개 질문Memory Management & GC
Senior
22개 질문리액티브 프로그래밍
Senior
24개 질문.NET 디자인 패턴
Senior
24개 질문성능 최적화
Senior
22개 질문보안 및 모범 사례
Senior
24개 질문SignalR 및 실시간
Senior
22개 질문마이크로서비스 아키텍처
Senior
25개 질문