

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

# SDK for Kotlin 시작하기
<a name="get-started"></a>

는 각각에 대한 Kotlin APIs AWS SDK for Kotlin 제공합니다 AWS 서비스. SDK를 사용하면 Amazon S3, Amazon EC2, Amazon DynamoDB 등과 함께 작동하는 Kotlin 애플리케이션을 구축할 수 있습니다.

이 자습서에서는 Gradle을 사용하여에 대한 종속성을 정의하는 방법을 보여줍니다 AWS SDK for Kotlin. 그런 다음 DynamoDB 테이블에 데이터를 쓰는 코드를 생성합니다. IDE의 기능을 사용할 수 있지만이 자습서에 필요한 것은 터미널 창과 텍스트 편집기뿐입니다.

자습서를 완료하려면 이 단계를 따릅니다.
+  [1단계: 튜토리얼 설정](#get-started-setup) 
+  [2단계: 프로젝트 생성](#get-started-projectsetup) 
+  [3단계: 코드 작성](#get-started-code) 
+  [4단계: 애플리케이션 빌드 및 실행](#get-started-run) 

## 1단계: 튜토리얼 설정
<a name="get-started-setup"></a>

이 자습서를 시작하기 전에 DynamoDB에 액세스할 수 있는 [IAM Identity Center 권한 세트](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)가 필요하며에 액세스하려면 IAM Identity Center Single Sign-On 설정으로 구성된 Kotlin 개발 환경이 필요합니다 AWS.

이 가이드[기본 설정](setup-basic-onetime-setup.md)의에 있는 지침에 따라이 자습서의 기본 설정을 가져옵니다.

Kotlin SDK에 대한 [Single Sign-On 액세스](setup-basic-onetime-setup.md#setup-sso-access)로 개발 환경을 구성하고 [활성 AWS 액세스 포털 세션](setup-basic-onetime-setup.md#setup-login-sso)이 있으면 2단계를 진행합니다.

## 2단계: 프로젝트 생성
<a name="get-started-projectsetup"></a>

이 자습서를 위한 프로젝트를 생성하려면 먼저 Gradle을 사용하여 Kotlin 프로젝트의 기본 파일을 생성합니다. 그런 다음에 필요한 설정, 종속성 및 코드로 파일을 업데이트합니다 AWS SDK for Kotlin.

 **Gradle을 사용하여 새 프로젝트를 생성하려면** 

**참고**  
이 자습서에서는 아래 3단계에서 5개의 프롬프트를 제공하는 `gradle init` 명령과 함께 Gradle 버전 8.11.1을 사용합니다. 다른 버전의 Gradle을 사용하는 경우 프롬프트와 미리 채워진 버전의 아티팩트가 다를 수 있습니다.

1. 데스크톱 또는 홈 폴더와 같이 선택한 `getstarted` 위치에 라는 새 디렉터리를 생성합니다.

1. 터미널 또는 명령 프롬프트 창을 열고 생성한 `getstarted` 디렉터리로 이동합니다.

1. 다음 명령을 사용하여 새 Gradle 프로젝트와 기본 Kotlin 클래스를 생성합니다.

   ```
   gradle init --type kotlin-application --dsl kotlin
   ```
   + 대상에 대한 메시지가 표시되면 `Enter` (기본값은 )를 `Java version`누릅니다`21`.
   + 와 함께 메시지가 표시되면 `Enter` (이 자습서`getstarted`에서는 디렉터리 이름의 기본값)를 `Project name`누릅니다.
   + 라는 메시지가 표시되면 `Enter` (기본값은 )를 `application structure`누릅니다`Single application project`.
   + 와 함께 메시지가 표시되면 `Enter` (기본값은 )를 `Select test framework`누릅니다`kotlin.test`.
   + 와 함께 메시지가 표시되면 `Enter` (기본값은 )를 `Generate build using new APIs and behavior`누릅니다`no`.

 **및 Amazon S3에 AWS SDK for Kotlin 대한 종속성을 사용하여 프로젝트를 구성하려면 ** 
+ 이전 절차에서 생성한 `getstarted` 디렉터리에서 `settings.gradle.kts` 파일의 콘텐츠를 다음 콘텐츠로 바꾸고 *X.Y.Z를 최신 버전의 SDK for Kotlin*으로 바꿉니다. [https://github.com/awslabs/aws-sdk-kotlin/releases/latest](https://github.com/awslabs/aws-sdk-kotlin/releases/latest) 

  ```
  dependencyResolutionManagement {
      repositories {
          mavenCentral()
      }
  
      versionCatalogs {
          create("awssdk") {
              from("aws.sdk.kotlin:version-catalog:[https://github.com/awslabs/aws-sdk-kotlin/releases/latest](https://github.com/awslabs/aws-sdk-kotlin/releases/latest)")
          }
      }
  }
  
  plugins {
      // Apply the foojay-resolver plugin to allow automatic download of JDKs.
      id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
  }
  
  rootProject.name = "getstarted"
  include("app")
  ```
+ `gradle` 디렉터리 내부의 `getstarted` 디렉터리로 이동합니다. 라는 버전 카탈로그 파일의 내용을 다음 내용`libs.versions.toml`으로 바꿉니다.

  ```
  [versions]
  junit-jupiter-engine = "5.10.3"
  
  [libraries]
  junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit-jupiter-engine" }
  
  [plugins]
  kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.1.0" }
  ```
+ `app` 디렉터리로 이동하여 `build.gradle.kts` 파일을 엽니다. 그 내용을 다음 코드로 교체하고 변경 내용을 저장합니다.

  ```
  plugins {
      alias(libs.plugins.kotlin.jvm)
      application
  }
  
  
  dependencies {
      implementation(awssdk.services.s3) // Add dependency on the AWS SDK for Kotlin's S3 client.
  
      testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
      testImplementation(libs.junit.jupiter.engine)
      testRuntimeOnly("org.junit.platform:junit-platform-launcher")
  }
  
  java {
      toolchain {
          languageVersion = JavaLanguageVersion.of(21)
      }
  }
  
  application {
      mainClass = "org.example.AppKt"
  }
  
  tasks.named<Test>("test") {
      useJUnitPlatform()
  }
  ```

  `dependencies` 섹션에는의 Amazon S3 모듈에 대한 `implementation` 항목이 포함되어 있습니다 AWS SDK for Kotlin. Gradle 컴파일러는 `java` 섹션에서 Java 21을 사용하도록 구성되어 있습니다.

## 3단계: 코드 작성
<a name="get-started-code"></a>

프로젝트를 생성하고 구성한 후 다음 예제 코드를 `App` 사용하도록 프로젝트의 기본 클래스를 편집합니다.

1. 프로젝트 폴더에서 디렉터리 로 `app`이동합니다`src/main/kotlin/org/example`. `App.kt` 파일을 엽니다.

1. 내용을 다음 코드로 바꾸고 파일을 저장합니다.

   ```
   package org.example
   
   import aws.sdk.kotlin.services.s3.*
   import aws.sdk.kotlin.services.s3.model.BucketLocationConstraint
   import aws.smithy.kotlin.runtime.content.ByteStream
   import kotlinx.coroutines.runBlocking
   import java.util.UUID
   
   val REGION = "us-west-2"
   val BUCKET = "bucket-${UUID.randomUUID()}"
   val KEY = "key"
   
   fun main(): Unit = runBlocking {
       S3Client
           .fromEnvironment { region = REGION }
           .use { s3 ->
               setupTutorial(s3)
   
               println("Creating object $BUCKET/$KEY...")
   
               s3.putObject {
                   bucket = BUCKET
                   key = KEY
                   body = ByteStream.fromString("Testing with the Kotlin SDK")
               }
   
               println("Object $BUCKET/$KEY created successfully!")
   
               cleanUp(s3)
           }
   }
   
   suspend fun setupTutorial(s3: S3Client) {
       println("Creating bucket $BUCKET...")
       s3.createBucket {
           bucket = BUCKET
           if (REGION != "us-east-1") { // Do not set location constraint for us-east-1.
               createBucketConfiguration {
                   locationConstraint = BucketLocationConstraint.fromValue(REGION)
               }
           }
       }
       println("Bucket $BUCKET created successfully!")
   }
   
   suspend fun cleanUp(s3: S3Client) {
       println("Deleting object $BUCKET/$KEY...")
       s3.deleteObject {
           bucket = BUCKET
           key = KEY
       }
       println("Object $BUCKET/$KEY deleted successfully!")
   
       println("Deleting bucket $BUCKET...")
       s3.deleteBucket {
           bucket = BUCKET
       }
       println("Bucket $BUCKET deleted successfully!")
   }
   ```

## 4단계: 애플리케이션 빌드 및 실행
<a name="get-started-run"></a>

프로젝트가 생성되고 예제 클래스가 포함된 후 애플리케이션을 빌드하고 실행합니다.

1. 터미널 또는 명령 프롬프트 창을 열고 프로젝트 디렉토리 `getstarted`로 이동합니다.

1. 다음 명령을 사용하여 애플리케이션을 빌드하고 실행합니다.

   ```
   gradle run
   ```

**참고**  
를 받으면 활성 Single Sign-On 세션이 없을 `IdentityProviderException`수 있습니다. `aws sso login` AWS CLI 명령을 실행하여 새 세션을 시작합니다.

애플리케이션은 [createBucket](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3/create-bucket.html) API 작업을 호출하여 새 S3 버킷을 생성한 다음 [putObject](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3/put-object.html)를 호출하여 새 객체를 새 S3 버킷에 넣습니다.

끝에 있는 `cleanUp()` 함수에서 애플리케이션은 객체를 삭제한 다음 S3 버킷을 삭제합니다.

 **Amazon S3 콘솔에서 결과를 보려면** 

1. 에서 `runBlocking` 섹션의 줄`cleanUp(s3)`을 `App.kt`주석 처리하고 파일을 저장합니다.

1. 를 실행하여 프로젝트를 다시 빌드하고 새 객체를 새 S3 버킷에 넣습니다`gradle run`.

1. [Amazon S3 콘솔](https://console.aws.amazon.com/s3)에 로그인하여 새 S3 버킷의 새 객체를 봅니다.

객체를 확인한 후 S3 버킷을 삭제합니다.

### Success
<a name="get-started-success"></a>

Gradle 프로젝트가 오류 없이 빌드되고 실행되면가 축하합니다. 를 사용하여 첫 번째 Kotlin 애플리케이션을 성공적으로 빌드했습니다 AWS SDK for Kotlin.

### 정리
<a name="cleanup"></a>

새 애플리케이션 개발을 마치면 요금이 발생하지 않도록이 자습서 중에 생성한 모든 AWS 리소스를 삭제합니다. 2단계에서 생성한 프로젝트 폴더(`get-started`)를 삭제하거나 아카이브할 수도 있습니다.

다음 단계에 따라 리소스를 정리합니다.
+ `cleanUp()` 함수에 대한 호출을 주석 처리한 경우 Amazon S3 콘솔을 사용하여 S3 버킷을 삭제합니다. [Amazon S3 ](https://console.aws.amazon.com/s3)

## 다음 단계
<a name="get-started-next"></a>

이제 기본 사항을 갖추었으므로, 다음 내용을 배울 수 있습니다.
+  [SDK for Kotlin 작업을 위한 추가 설정 단계](setup.md) 
+  [SDK for Kotlin 구성](configuration.md) 
+  [SDK for Kotlin 사용](using.md) 
+  [SDK for Kotlin에 대한 보안](security.md) 