
HTTP 클라이언트
http.Client, 요청, 타임아웃, transport, 리다이렉트, cookie, 커스텀 헤더
18 면접 질문·
Mid-Level
1http.Get와 http.Client.Get의 주요 차이점은 무엇입니까?
1
http.Get와 http.Client.Get의 주요 차이점은 무엇입니까?
답변
http.Get는 커스터마이징이 불가능한 기본 HTTP 클라이언트(http.DefaultClient)를 사용하는 반면, http.Client.Get는 타임아웃, 리다이렉트 정책, 커스텀 transport 같은 파라미터를 설정할 수 있습니다. 프로덕션에서는 요청 동작을 제어하고 무기한 블로킹을 피하기 위해 커스텀 HTTP 클라이언트를 만드는 것이 권장됩니다.
2http.Client.Timeout가 설정되지 않으면 어떻게 됩니까?
2
http.Client.Timeout가 설정되지 않으면 어떻게 됩니까?
답변
명시적인 타임아웃이 없으면 HTTP 클라이언트는 서버 응답을 무기한 기다리며, 서버가 응답하지 않으면 애플리케이션을 블로킹할 수 있습니다. 기본 타임아웃은 0이며, 이는 시간 제한이 없음을 의미합니다. 블로킹된 goroutine과 리소스 누수를 피하기 위해 프로덕션에서는 항상 합리적인 타임아웃을 설정하세요.
3HTTP 요청에 커스텀 헤더를 추가하는 방법은 무엇입니까?
3
HTTP 요청에 커스텀 헤더를 추가하는 방법은 무엇입니까?
답변
커스텀 헤더는 http.NewRequest로 요청을 생성한 후 http.Request.Header.Set() 또는 Header.Add()를 통해 추가합니다. Set 메서드는 기존 값을 대체하고 Add는 같은 키에 새 값을 추가합니다. 이 방식은 인증, 콘텐츠 협상 또는 커스텀 식별자를 통한 요청 추적에 필요합니다.
4
response.Body.Close()를 호출하는 것이 왜 중요합니까?
5
서버에 JSON 데이터를 보낼 수 있는 HTTP 메서드는 무엇입니까?
+15 면접 질문
기타 Go 면접 주제
Go 기초
Junior
25개 질문Go 데이터 구조
Junior
20개 질문Go 인터페이스
Junior
18개 질문에러 처리
Junior
20개 질문Goroutine 기초
Junior
20개 질문Channels
Junior
22개 질문Go Modules
Mid-Level
18개 질문HTTP 서버
Mid-Level
24개 질문JSON 인코딩
Mid-Level
20개 질문Database/SQL
Mid-Level
22개 질문context 패키지
Mid-Level
20개 질문Testing
Mid-Level
22개 질문동시성 패턴
Mid-Level
24개 질문동기화 프리미티브
Mid-Level
22개 질문Go 웹 프레임워크
Mid-Level
20개 질문REST API 설계
Mid-Level
20개 질문gRPC
Mid-Level
22개 질문Reflection
Senior
20개 질문메모리 관리
Senior
24개 질문성능 최적화
Senior
22개 질문Generics
Senior
20개 질문Go Design Patterns
Senior
24개 질문Microservices
Senior
24개 질문보안 및 인증
Senior
24개 질문Docker & Containerization
Senior
20개 질문Kubernetes Basics
Senior
22개 질문고급 Go
Senior
20개 질문CLI 개발
Senior
20개 질문