.NET

HttpClient & 네트워킹

HttpClient, HttpClientFactory, request/response, 오류 처리, retry policies, async 패턴

20 면접 질문·
Mid-Level
1

HttpClient를 직접 인스턴스화하는 대신 IHttpClientFactory를 사용하는 이유는 무엇입니까?

답변

IHttpClientFactory는 HttpClient 인스턴스의 수명 주기를 자동으로 관리하고 socket exhaustion을 방지합니다. using 문에서 HttpClient를 직접 인스턴스화하면 disposal 후에도 열려 있는 TIME_WAIT 상태의 연결 문제가 발생할 수 있습니다. IHttpClientFactory를 사용하면 Polly로 복원력 정책을 구성하고 연결 풀링을 효율적으로 관리할 수도 있습니다.

2

Named Client와 Typed Client의 주요 차이점은 무엇입니까?

답변

Typed Client는 HTTP 호출 로직을 의존성 주입과 함께 전용 클래스에 캡슐화하는 반면, Named Client는 IHttpClientFactory.CreateClient(name)을 통해 가져옵니다. Typed Client는 관심사 분리가 더 우수하며 설정과 비즈니스 로직을 캡슐화하여 단위 테스트를 용이하게 합니다. Named Client는 복잡한 비즈니스 로직 없이 여러 다른 설정이 필요한 간단한 경우에 유용합니다.

3

애플리케이션의 모든 HttpClient 인스턴스에 전역 타임아웃을 구성하려면 어떻게 합니까?

답변

ConfigurePrimaryHttpMessageHandler를 통해 타임아웃을 구성하면 factory가 생성하는 모든 클라이언트에 적용되는 handler 수준의 타임아웃을 정의할 수 있습니다. 이 접근 방식은 설정을 중앙 집중화하고 코드 중복을 방지합니다. 각 HttpClient에 개별적으로 타임아웃을 구성할 수도 있지만, 여러 클라이언트가 구성된 대규모 애플리케이션에서는 유지 관리가 어려워집니다.

4

HTTP 응답의 본문을 문자열로 읽을 수 있는 메서드는 무엇입니까?

5

HttpClient 파이프라인에서 DelegatingHandler의 역할은 무엇입니까?

+17 면접 질문

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

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

무료로 시작하기