

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/)을 참조하세요.

# Node.js에서 시작하기
<a name="getting-started-nodejs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**이 Node.js 코드 예제는 다음을 보여 줍니다.**
+ 프로젝트를 위한 `package.json` 매니페스트를 생성하는 방법
+ 프로젝트에서 사용하는 모듈을 설치 및 포함하는 방법
+ `AWS.S3` 클라이언트 클래스에서 Amazon Simple Storage Service(S3) 서비스 객체를 생성하는 방법
+ Amazon S3 버킷을 생성하고 해당 버킷에 객체를 업로드하는 방법

## 시나리오
<a name="getting-started-nodejs-scenario"></a>

이 예제에서는 Amazon S3 버킷을 생성한 다음 이 버킷에 텍스트 객체를 추가하는 Node.js 모듈을 간단하게 설정 및 실행하는 방법을 보여줍니다.

Amazon S3의 버킷 이름은 전역적으로 고유해야 하기 때문에 이 예제에는 버킷 이름에 통합할 수 있는 고유한 ID 값을 생성하는 타사 Node.js 모듈이 포함되어 있습니다. 이 추가 모듈의 이름은 `uuid`입니다.

## 사전 필수 작업
<a name="getting-started-nodejs-prerequisites"></a>

이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.
+ Node.js 모듈 개발을 위한 작업 디렉터리를 생성합니다. 이 디렉터리의 이름을 `awsnodesample`로 지정합니다. 디렉터리는 애플리케이션에서 업데이트할 수 있는 위치에 생성해야 합니다. 예를 들어 Windows에서는 "C:\$1Program Files" 아래에 디렉터리를 생성하지 마십시오.
+ Node.js를 설치합니다. 자세한 내용은 [Node.js](https://nodejs.org) 웹 사이트를 참조하세요. [https://nodejs.org/en/download/current/](https://nodejs.org/en/download/current/)에서는 다양한 운영 체제에 맞는 Node.js의 최신 버전 및 LTS 버전 다운로드를 찾을 수 있습니다.

**Contents**
+ [시나리오](#getting-started-nodejs-scenario)
+ [사전 필수 작업](#getting-started-nodejs-prerequisites)
+ [1단계: SDK 및 종속성 설치](#getting-started-nodejs-install-sdk)
+ [2단계: 자격 증명 구성](#getting-started-nodejs-credentials)
+ [3단계: 프로젝트용 패키지 JSON 생성](#getting-started-nodejs-download)
+ [4단계: Node.js 작성](#getting-started-nodejs-js-code)
+ [5단계: 샘플 실행](#getting-started-nodejs-run-sample)

## 1단계: SDK 및 종속성 설치
<a name="getting-started-nodejs-install-sdk"></a>

[Node.js 패키지 관리자인 npm](https://www.npmjs.com)으로 SDK for JavaScript를 설치합니다.

이 패키지의 `awsnodesample` 디렉터리에서 명령줄에 다음을 입력합니다.

```
npm install aws-sdk
```

이 명령은 프로젝트에 SDK for JavaScript를 설치하고 `package.json`을 업데이트하여 SDK를 프로젝트 종속성으로 나열합니다. [npm 웹 사이트](https://www.npmjs.com)에서 "aws-sdk"를 검색하여 이 패키지에 대한 정보를 찾을 수 있습니다.

다음으로, 명령줄에 다음을 입력하여 프로젝트에 `uuid` 모듈을 설치합니다. 그러면 모듈이 설치되고 `package.json`이 업데이트됩니다. `uuid`에 대한 자세한 내용은 [https://www.npmjs.com/package/uuid](https://www.npmjs.com/package/uuid)에서 모듈 페이지를 참조하세요.

```
npm install uuid
```

이러한 패키지와 연결된 코드는 프로젝트의 `node_modules` 하위 디렉터리에 설치됩니다.

Node.js 패키지 설치에 대한 자세한 내용은 [로컬에서 패키지 다운로드 및 설치](https://docs.npmjs.com/getting-started/installing-npm-packages-locally) 및 [npm(Node.js 패키지 관리자) 웹 사이트의](https://www.npmjs.com) [Node.js 모듈 생성](https://docs.npmjs.com/getting-started/creating-node-modules) 섹션을 참조하세요. AWS SDK for JavaScript 설치 및 다운로드에 대한 자세한 내용은 [SDK for JavaScript 설치](installing-jssdk.md) 섹션을 참조하세요.

## 2단계: 자격 증명 구성
<a name="getting-started-nodejs-credentials"></a>

SDK에서 계정과 해당 계정의 리소스에만 액세스할 수 있도록 AWS에 자격 증명을 제공해야 합니다. 계정 자격 증명을 받는 방법에 대한 자세한 내용은 [AWS를 사용한 SDK 인증](getting-your-credentials.md) 섹션을 참조하세요.

이러한 정보를 보관하려면 공유 자격 증명 파일을 만드는 것이 좋습니다. 자세한 방법은 [공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드](loading-node-credentials-shared.md)을 참조하세요. 자격 증명 파일의 모양은 다음 예와 유사해야 합니다.

```
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
```

Node.js로 다음 코드를 실행하여 자격 증명을 올바르게 설정했는지 여부를 확인할 수 있습니다.

```
var AWS = require("aws-sdk");

AWS.config.getCredentials(function(err) {
  if (err) console.log(err.stack);
  // credentials not loaded
  else {
    console.log("Access key:", AWS.config.credentials.accessKeyId);
  }
});
```

마찬가지로, `config` 파일에서 리전을 올바르게 설정한 경우 `AWS_SDK_LOAD_CONFIG` 환경 변수를 임의의 값으로 설정하고 다음 코드를 사용하여 해당 값을 표시할 수 있습니다.

```
var AWS = require("aws-sdk");

console.log("Region: ", AWS.config.region);
```

## 3단계: 프로젝트용 패키지 JSON 생성
<a name="getting-started-nodejs-download"></a>

`awsnodesample` 프로젝트 디렉터리를 생성한 다음 Node.js 프로젝트에 대한 메타데이터를 보관하기 위한 `package.json` 파일을 만들어 추가합니다. Node.js 프로젝트에서 `package.json`을 사용하는 방법에 관한 자세한 내용은 [패키지 .json 파일 생성](https://docs.npmjs.com/creating-a-package-json-file)을 참조하세요.

프로젝트 디렉터리에서 `package.json`이라는 새 파일을 생성합니다. 그런 다음 이 파일에 다음 JSON을 추가합니다.

```
{
  "dependencies": {},
  "name": "aws-nodejs-sample",
  "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.",
  "version": "1.0.1",
  "main": "sample.js",
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "NAME",
  "license": "ISC"
}
```

파일을 저장합니다. 필요한 모듈을 설치하면 이 파일의 `dependencies` 부분이 완료됩니다. [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/example_package.json)에서 이러한 종속성의 예제를 보여주는 JSON 파일을 찾을 수 있습니다.

## 4단계: Node.js 작성
<a name="getting-started-nodejs-js-code"></a>

예제 코드를 포함할 `sample.js`라는 새 파일을 만듭니다. `require` 함수 호출을 추가하고 사용할 수 있도록 SDK for JavaScript 및 `uuid` 모듈을 포함하는 것으로 시작합니다.

인식 가능한 접두사(이 경우에는 `'node-sdk-sample-'`)에 고유한 ID 값을 추가하여 Amazon S3 버킷을 생성하는 데 사용할 고유한 버킷 이름을 작성합니다. `uuid` 모듈을 호출하여 고유한 ID를 생성합니다. 그런 다음 버킷에 객체를 업로드하는 데 사용하는 `Key` 파라미터의 이름을 생성합니다.

`promise` 객체를 생성하여 `createBucket` 서비스 객체의 `AWS.S3` 메서드를 호출합니다. 성공적인 응답 시 새로 생성한 버킷에 텍스트를 업로드하는 데 필요한 파라미터를 생성합니다. 다른 promise를 사용하여 `putObject` 메서드를 호출해 버킷에 텍스트 객체를 업로드합니다.

```
// Load the SDK and UUID
var AWS = require("aws-sdk");
var uuid = require("uuid");

// Create unique bucket name
var bucketName = "node-sdk-sample-" + uuid.v4();
// Create name for uploaded object key
var keyName = "hello_world.txt";

// Create a promise on S3 service object
var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" })
  .createBucket({ Bucket: bucketName })
  .promise();

// Handle promise fulfilled/rejected states
bucketPromise
  .then(function (data) {
    // Create params for putObject call
    var objectParams = {
      Bucket: bucketName,
      Key: keyName,
      Body: "Hello World!",
    };
    // Create object upload promise
    var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" })
      .putObject(objectParams)
      .promise();
    uploadPromise.then(function (data) {
      console.log(
        "Successfully uploaded data to " + bucketName + "/" + keyName
      );
    });
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

이 샘플 코드는 [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/sample.js)에서 찾을 수 있습니다.

## 5단계: 샘플 실행
<a name="getting-started-nodejs-run-sample"></a>

다음 명령을 입력하여 샘플을 실행합니다.

```
node sample.js
```

업로드에 성공하면 명령줄에 확인 메시지가 표시됩니다. 또한 [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)에서도 버킷 및 업로드된 텍스트 객체를 찾을 수 있습니다.