

AWS SDK for JavaScript v2가 지원 종료에 도달했습니다. [AWS SDK for JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)로 마이그레이션하실 것을 권장합니다. 마이그레이션 방법에 대한 자세한 내용은 해당 [공지 사항](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)을 참조하세요.

# 익명 콜백 함수 사용
<a name="using-a-callback-function"></a>

`AWS.Request` 객체를 생성하는 각 서비스 객체 메서드는 익명 콜백 함수를 마지막 파라미터로 수락할 수 있습니다. 이 콜백 함수의 서명은 다음과 같습니다.

```
function(error, data) {
    // callback handling code
}
```

이 콜백 함수는 성공적인 응답 또는 오류 데이터 반환 시 실행됩니다. 메서드 호출에 성공하면 `data` 파라미터에서 응답 내용을 콜백 함수에 사용할 수 있습니다. 호출에 실패하면 `error` 파라미터에 자세한 실패 정보가 제공됩니다.

일반적으로 콜백 함수 내 코드는 오류가 있는지 테스트하는데, 오류가 반환되면 처리합니다. 오류가 반환되지 않으면 코드는 응답의 `data` 파라미터에서 데이터를 검색합니다. 콜백 함수의 기본 형식은 다음 예제와 같습니다.

```
function(error, data) {
    if (error) {
        // error handling code
        console.log(error);
    } else {
        // data handling code
        console.log(data);
    }
}
```

이전 예제에서는 오류 또는 반환되는 데이터에 대한 자세한 내용이 콘솔에 로깅됩니다. 다음은 서비스 객체에 대한 메서드 호출의 일부로 전달되는 콜백 함수를 보여주는 예제입니다.

```
new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) {
  if (error) {
    console.log(error); // an error occurred
  } else {
    console.log(data); // request succeeded
  }
});
```

## 요청 및 응답 객체에 액세스
<a name="access-request-response"></a>

콜백 함수 내에서 JavaScript 키워드 `this`는 대부분 서비스의 경우 기본 `AWS.Response` 객체를 가리킵니다. 다음 예제에서는 디버깅을 지원하기 위해 `httpResponse` 객체의 `AWS.Response` 속성이 콜백 함수 내에서 사용되어 원시 응답 데이터 및 헤더를 로깅합니다.

```
new AWS.EC2({apiVersion: '2014-10-01'}).describeInstances(function(error, data) {
  if (error) {
    console.log(error); // an error occurred
    // Using this keyword to access AWS.Response object and properties
    console.log("Response data and headers: " + JSON.stringify(this.httpResponse));
  } else {
    console.log(data); // request succeeded
  }
});
```

또한 `AWS.Response` 객체에는 원래 메서드 호출에서 보낸 `Request`가 포함된 `AWS.Request` 속성이 있으므로 수행된 요청에 대한 세부 정보에 액세스할 수도 있습니다.