

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

# AWS SDK for PHP 버전 3용 코드로 서비스 클라이언트 구성
<a name="configuring-service-clients-code"></a>

[서비스 클라이언트를 외부에서 구성](configuring-service-clients-ext.md)하는 대신 또는 그에 추가하여 코드 내에서 프로그래밍 방식으로 구성할 수 있습니다.

코드에 서비스 클라이언트를 구성하여 사용 가능한 많은 옵션을 세밀하게 제어할 수 있습니다. 외부에서 설정할 수 있는 대부분의 구성도 코드에서 설정할 수 있습니다.

## 코드 내 기본 구성
<a name="conf-service-client-code-basic"></a>

클라이언트의 생성자에 결합형 배열의 옵션을 전달하여 코드에서 서비스 클라이언트를 생성하고 구성할 수 있습니다. 다음 예에서는 결합형 배열에 클라이언트가 사용하는 "region" 옵션만 포함되어 있습니다.

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

//Create an S3Client
$s3 = new S3Client([
    'region' => 'eu-south-2'
]);
```

선택적 ‘version’ 파라미터에 대한 정보는 [구성 옵션](guide_configuration.md#cfg-version) 항목에서 확인할 수 있습니다.

보안 인증을 클라이언트에 명시적으로 제공하지 **않았다는** 점에 주의하세요. 이는 SDK가 [기본 자격 증명 공급자 체인](guide_credentials_default_chain.md)을 사용하여 자격 증명 정보를 찾기 때문입니다.

모든 일반 클라이언트 구성 옵션에 대해서는 [AWS SDK for PHP 버전 3의 클라이언트 생성자 옵션](guide_configuration.md)에서 자세히 설명합니다. 클라이언트에 제공되는 옵션의 배열은 어떤 클라이언트를 생성하고 있는지에 따라 다를 수 있습니다. 이러한 사용자 지정 클라이언트 구성 옵션에 대해서는 각 클라이언트의 [API 설명서](https://docs.aws.amazon.com/aws-sdk-php/latest/)에서 설명합니다.

## `Sdk` 클래스 사용
<a name="sdk-class"></a>

`Aws\Sdk` 클래스는 클라이언트 팩토리 역할을 하며 여러 클라이언트 간의 공유 구성 옵션을 관리하는 데 사용됩니다. 특정 클라이언트 생성자에 제공할 수 있는 동일한 옵션을 `Aws\Sdk` 클래스에도 제공할 수 있습니다. 그러면 이러한 옵션은 각 클라이언트 생성자에 적용됩니다.

 **가져오기** 

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **샘플 코드** 

```
// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class.
// Use the us-west-2 region and latest version of each client.
$sharedConfig = [
    'region' => 'us-west-2'
];
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);
// Create an Amazon S3 client using the shared configuration data.
$client = $sdk->createS3();
```

모든 클라이언트 간에 공유되는 옵션은 루트 수준 키-값 페어에 배치됩니다. 서비스별 구성 데이터는 서비스의 네임스페이스(예: "S3", "DynamoDb" 등)와 동일한 키를 갖는 결합형 배열에 제공할 수 있습니다.

```
$sdk = new Aws\Sdk([
    'region'   => 'us-west-2',
    'DynamoDb' => [
        'region' => 'eu-central-1'
    ]
]);

// Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region.
$client = $sdk->createDynamoDb();
```

서비스별 구성 값은 서비스별 값과 루트 수준 값의 결합입니다(즉, 서비스별 값은 루트 수준 값에 얕게 병합됨).

**참고**  
애플리케이션에서 여러 클라이언트 인스턴스를 사용하는 경우 `Sdk` 클래스를 사용하여 클라이언트를 생성하는 것이 좋습니다. `Sdk` 클래스는 각 SDK 클라이언트에 동일한 HTTP 클라이언트를 자동으로 사용하여 다른 서비스에 대한 SDK 클라이언트가 비차단 HTTP 요청을 수행할 수 있도록 허용합니다. SDK 클라이언트가 동일한 HTTP 클라이언트를 사용하지 않으면 SDK에서 전송된 HTTP 요청이 서비스 간의 promise 오케스트레이션을 차단할 수 있습니다.