

# Go에 대한 기본 클라이언트 구성
<a name="DAX-client-config-Go"></a>

이 가이드에서는 DAX 클라이언트의 성능, 연결 관리 및 로깅 동작을 미세 조정할 수 있는 구성 옵션을 안내합니다. 기본 설정과 이를 사용자 지정하는 방법을 이해하면 Go 애플리케이션과 DAX의 상호 작용을 최적화할 수 있습니다.

**Topics**
+ [DAX Go SDK 클라이언트 기본값](#DAX-client-config-Go-sdk-client-defaults)
+ [클라이언트 만들기](#DAX-client-config-Go-client-creation)

## DAX Go SDK 클라이언트 기본값
<a name="DAX-client-config-Go-sdk-client-defaults"></a>


| 파라미터 | 유형 | 설명 | 
| --- | --- | --- | 
| `Region`<br />필수 | `string` | DAX 클라이언트에 사용할 AWS 리전입니다(예: 'us-east-1'). 환경을 통해 제공되지 않는 경우 필수 파라미터입니다. | 
| `HostPorts`<br />필수 | `[] string` | SDK가 연결하는 DAX 클러스터 엔드포인트 목록입니다.<br />예제:<br />암호화되지 않음 - dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com<br />암호화됨 - daxs://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com | 
| `MaxPendingConnectionsPerHost`<br />기본값 10 | `number` | 동시 연결 시도 횟수입니다. (연결은 동시에 설정 중일 수 있습니다.) | 
| `ClusterUpdateThreshold`<br />기본값 125 \* time.Millisecond | `time.Duration` | 클러스터 새로 고침 사이에 경과해야 하는 최소 시간입니다. | 
| `ClusterUpdateInterval`<br />기본값 4 \* time.Second | `time.Duration` | 클라이언트가 DAX 클러스터 정보를 자동으로 새로 고치는 간격입니다. | 
| `IdleConnectionsReapDelay`<br />기본값 30 \* time.Second | `time.Duration` | 클라이언트가 DAX 클라이언트에서 유휴 연결을 닫는 간격입니다. | 
| `ClientHealthCheckInterval`<br />기본값 5 \* time.Second | `time.Duration` | 클라이언트가 DAX 클러스터 엔드포인트에서 상태 확인을 수행하는 간격입니다. | 
| `Credentials`<br />기본값 | `aws.CredentialsProvider` | DAX 클라이언트가 DAX 서비스에 대한 요청을 인증하는 데 사용하는 AWS 자격 증명입니다. [Credentials and Credential Providers](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/migrate-gosdk.html#credentials--credential-providers)를 참조하세요. | 
| `DialContext`<br />기본값 | `func` | DAX 클라이언트가 DAX 클러스터에 대한 연결을 설정하는 데 사용하는 사용자 지정 함수입니다. | 
| `SkipHostnameVerification`<br />기본값 false | bool | TLS 연결의 호스트 이름 확인을 건너뜁니다. 이 설정은 암호화된 클러스터에만 영향을 줍니다. True로 설정하면 호스트 이름 확인이 비활성화됩니다. 확인을 비활성화하면 연결 중인 클러스터의 ID를 인증할 수 없으므로 보안 위험이 있습니다. 기본적으로 호스트 이름 확인이 활성화됩니다. | 
| `RouteManagerEnabled`<br />기본값 false | `bool` | 이 플래그는 네트워크 오류가 발생한 경로를 제거하는 데 사용됩니다. | 
| `RequestTimeout`<br />기본값 60 \* time.Second | `time.Duration` | 이는 클라이언트가 DAX의 응답을 기다리는 최대 시간을 정의합니다.<br />우선순위: 컨텍스트 제한 시간(설정된 경우) > `RequestTimmeout`(설정된 경우) > 기본값 60초 `RequestTimeout`. | 
| `WriteRetries`<br />기본값 2 | `number` | 실패한 쓰기 요청에 대한 재시도 횟수입니다. | 
| `ReadRetries`<br />기본값 2 | `number` | 실패한 읽기 요청에 대한 재시도 횟수입니다. | 
| `RetryDelay`<br />기본값 0 | `time.Duration` | 요청 실패 시 스로틀링되지 않은 오류에 대한 재시도 지연 시간(초)입니다. | 
| `Logger`<br />선택 사항 | `logging.Logger` | Logger는 특정 분류에서 항목을 로깅하기 위한 인터페이스입니다. | 
| `LogLevel`<br />기본값 utils.LogOff | `number` | 이 로그 수준은 DAX에 대해서만 정의됩니다. [github.com/aws/aws-dax-go-v2/tree/main/dax/utils](https://github.com/aws/aws-dax-go-v2/tree/main/dax/utils)를 사용하여 가져올 수 있습니다.<pre>const (    <br /> LogOff LogLevelType = 0   <br /> LogDebug LogLevelType = 1   <br /> LogDebugWithRequestRetries<br /> LogLevelType = 2<br />)</pre> | 

**참고**  
`time.Duration`의 경우 기본 단위는 나노초입니다. 파라미터에 대한 단위를 지정하지 않으면 나노초로 간주됩니다. `daxCfg.ClusterUpdateInterval = 10`은 10나노초를 의미합니다(`daxCfg.ClusterUpdateInterval = 10 * time.Millisecond`는 10밀리초를 의미함).

## 클라이언트 만들기
<a name="DAX-client-config-Go-client-creation"></a>

**DAX 클러스터를 만들려면:**
+ DAX 구성을 만든 다음 DAX 구성을 사용하여 DAX 클라이언트를 만듭니다. 이를 사용하여 필요한 경우 DAX 구성을 덮어쓸 수 있습니다.

  ```
  import (
  "github.com/aws/aws-dax-go-v2/dax/utils"
  "github.com/aws/aws-dax-go-v2/dax"
  )
  
  // Non - Encrypted : 'dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com'.
  // Encrypted : daxs://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com'.
  
  config := dax.DefaultConfig()
  config.HostPorts = []string{endpoint}
  config.Region = region
  config.LogLevel = utils.LogDebug
  daxClient, err := dax.New(config)
  ```