[go] HTTP 클라이언트의 기본 설정

Go 언어에서는 net/http 패키지를 사용하여 HTTP 클라이언트를 만들고 사용할 수 있습니다. HTTP 클라이언트의 기본 설정을 관리하는 방법에 대해 알아봅시다.

기본 클라이언트 생성

먼저, 기본 HTTP 클라이언트를 생성하는 방법에 대해 알아봅시다. 다음과 같이 기본 클라이언트를 생성할 수 있습니다.

package main

import (
	"net/http"
	"log"
)

func main() {
	client := &http.Client{}
	resp, err := client.Get("https://example.com")
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	// Response handling...
}

위 예제에서 &http.Client{}를 사용해 기본 클라이언트를 생성했습니다.

기본 설정 사용

기본 클라이언트를 생성한 후에 기본 설정을 적용할 수 있습니다. 이를 통해 타임아웃, 헤더, 리다이렉션 등을 설정할 수 있습니다. 아래는 타임아웃을 설정한 예제입니다.

package main

import (
	"net/http"
	"log"
	"time"
)

func main() {
	client := &http.Client{
		Timeout: 5 * time.Second,
	}
	resp, err := client.Get("https://example.com")
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	// Response handling...
}

Timeout 필드를 사용하여 타임아웃을 설정했습니다.

커스텀 트랜스포트 사용

더 세밀한 설정이 필요한 경우 http.Transport를 이용하여 커스텀 트랜스포트를 설정할 수 있습니다. 아래는 커스텀 트랜스포트를 사용한 예제입니다.

package main

import (
	"net/http"
	"log"
	"time"
)

func main() {
	tr := &http.Transport{
		MaxIdleConns:       10,
		IdleConnTimeout:    30 * time.Second,
		DisableCompression: true,
	}
	client := &http.Client{
		Transport: tr,
		Timeout:   5 * time.Second,
	}
	resp, err := client.Get("https://example.com")
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	// Response handling...
}

위의 예제에서, http.Transport를 사용하여 커스텀 트랜스포트를 설정했습니다.

이렇게 Go 언어에서는 기본 클라이언트를 생성하고 기본 설정을 관리하는 다양한 방법을 제공합니다.

더 많은 정보를 원하시면 공식 문서를 참조하세요.