

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS SDK for C\$1\$1에서 `Aws::SDKOptions`를 사용한 일반 구성
<a name="sdkoptions"></a>

[https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html) 구조체에는 SDK 구성 옵션이 포함되어 있습니다. `Aws::SDKOptions`는 일반 SDK 구성에 중점을 두는 반면, [`ClientConfiguration`](client-config.md) 구조체는 AWS 서비스와의 통신 구성에 중점을 둡니다.

[https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-core/html/struct_aws_1_1_s_d_k_options.html)의 인스턴스는 [`Aws::InitAPI` 및 `Aws::ShutdownAPI` 메서드](basic-use.md)에 전달됩니다. 두 메서드 모두에 동일한 인스턴스를 전송해야 합니다.

다음 샘플은 사용 가능한 몇 가지 옵션을 보여줍니다.
+ 기본 로거를 사용하여 로깅 켜기

  ```
  Aws::SDKOptions options;
  options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
+ 기본 HTTP 클라이언트 팩토리 재정의

  ```
  Aws::SDKOptions options;
  options.httpOptions.httpClientFactory_create_fn = [](){
          return Aws::MakeShared<MyCustomHttpClientFactory>(
              "ALLOC_TAG", arg1);
      };
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```
**참고**  
 `httpOptions`는 `std::shared_ptr` 대신 클로저(익명 함수 또는 Lambda 표현식이라고도 함)를 받습니다. 각 SDK 팩토리 함수는 팩토리 메모리 할당이 발생하는 시점에 메모리 관리자가 아직 설치되지 않았기 때문에 이러한 방식으로 작동합니다. 메서드에 클로저를 전달하면 메모리 할당이 안전하게 수행될 수 있을 때 메모리 관리자가 호출되어 메모리 할당을 수행합니다. 이 절차를 수행하는 간단한 기법은 Lambda 표현식을 사용하는 것입니다.
+ 글로벌 `SIGPIPE` 핸들러 사용

  curl 및 OpenSSL을 사용하여 SDK for C\$1\$1를 빌드하는 경우 신호 핸들러를 지정해야 합니다. 자체 사용자 지정 신호 핸들러를 사용하지 않는 경우 `installSigPipeHandler`를 `true`로 설정합니다.

  ```
  Aws::SDKOptions options;
  options.httpOptions.installSigPipeHandler = true; 
  Aws::InitAPI(options);
  {
      // make your SDK calls here.
  }
  Aws::ShutdownAPI(options);
  ```

  `installSigPipeHandler`가 `true`인 경우 SDK for C\$1\$1에서는 `SIGPIPE` 신호를 무시하는 핸들러를 사용합니다. `SIGPIPE`에 대한 자세한 내용은 GNU 운영 체제 웹 사이트에서 [Operation Error Signals](https://www.gnu.org/software/libc/manual/html_node/Operation-Error-Signals.html)를 참조하세요. curl 핸들러에 대한 자세한 내용은 curl 웹 사이트에 설명된 [CURLOPT\$1NOSIGNAL](https://curl.se/libcurl/c/CURLOPT_NOSIGNAL.html)을 참조하세요.

  curl 및 OpenSSL의 기본 라이브러리는 원격 측이 연결을 종료할 때 `SIGPIPE` 신호를 전송하여 알릴 수 있습니다. 이러한 신호는 애플리케이션에서 처리해야 합니다. 이 curl 기능에 대한 자세한 내용은 curl 웹 사이트에서 [libcurl thread safety](https://curl.se/libcurl/c/threadsafe.html)를 참조하세요. 신호 핸들러는 각 애플리케이션에 전역적으로 적용되며 라이브러리는 SDK의 종속성이므로 이 동작은 SDK에 자동으로 내장되지 않습니다.